Suche senden
Hochladen
VagrantユーザのためのDocker入門
•
201 gefällt mir
•
57,734 views
Masashi Shinbara
Folgen
第3回 コンテナ型仮想化の情報交換会@大阪
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 48
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Using LXC on Production
Using LXC on Production
Isao Shimizu
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
えむ ばーど
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Weitere ähnliche Inhalte
Was ist angesagt?
Dockerを社内で使うために
Dockerを社内で使うために
エンジニア勉強会 エスキュービズム
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Masahito Zembutsu
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
Kazuto Kusama
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Docker Swarm入門
Docker Swarm入門
Masahito Zembutsu
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Kunihiro TANAKA
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
Vagrant体験入門
Vagrant体験入門
Masashi Shinbara
Weaveを試してみた
Weaveを試してみた
Kazuto Kusama
ECS-CLI in Action
ECS-CLI in Action
Ryo Nakamaru
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
Kazuto Kusama
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
Nakazawa Yuichi
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Masahito Zembutsu
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Ryo Adachi
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
pyar6329
microPCFを使ってみよう
microPCFを使ってみよう
Hiroaki_UKAJI
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
masaki nakayama
Was ist angesagt?
(20)
Dockerを社内で使うために
Dockerを社内で使うために
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Docker Swarm入門
Docker Swarm入門
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
GKEで半年運用してみた
GKEで半年運用してみた
Vagrant体験入門
Vagrant体験入門
Weaveを試してみた
Weaveを試してみた
ECS-CLI in Action
ECS-CLI in Action
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
microPCFを使ってみよう
microPCFを使ってみよう
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
DockerからKubernetesへのシフト
DockerからKubernetesへのシフト
Andere mochten auch
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
Operation Lab, LLC.
No Monitoring, No Life on AWS
No Monitoring, No Life on AWS
Masahito Zembutsu
HyClops for Zabbix紹介資料
HyClops for Zabbix紹介資料
Daisuke Ikeda
Jtfハンズオン資料(公開版)
Jtfハンズオン資料(公開版)
亮介 山口
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
Kazuyuki Sato
20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice
Kazuki Ueki
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
Daisuke Ikeda
20140717 awssummit2014-cloud-operation
20140717 awssummit2014-cloud-operation
Yasuhiro Araki, Ph.D
SendGridサンプルの紹介
SendGridサンプルの紹介
Shunji Konishi
コンテナ基盤であるLXC/LXDを 本番環境で運用する話
コンテナ基盤であるLXC/LXDを 本番環境で運用する話
Nobuhiro Fujita
CoreOSによるDockerコンテナのクラスタリング
CoreOSによるDockerコンテナのクラスタリング
Yuji ODA
オンプレミスから AWS への劇的ビフォーアフター
オンプレミスから AWS への劇的ビフォーアフター
manabusakai
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
Dockerクイックツアー
Dockerクイックツアー
Etsuji Nakai
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
Masahito Zembutsu
Andere mochten auch
(15)
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
No Monitoring, No Life on AWS
No Monitoring, No Life on AWS
HyClops for Zabbix紹介資料
HyClops for Zabbix紹介資料
Jtfハンズオン資料(公開版)
Jtfハンズオン資料(公開版)
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」
20140726 jaws-ug chiba AWS operation best practice
20140726 jaws-ug chiba AWS operation best practice
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
20140717 awssummit2014-cloud-operation
20140717 awssummit2014-cloud-operation
SendGridサンプルの紹介
SendGridサンプルの紹介
コンテナ基盤であるLXC/LXDを 本番環境で運用する話
コンテナ基盤であるLXC/LXDを 本番環境で運用する話
CoreOSによるDockerコンテナのクラスタリング
CoreOSによるDockerコンテナのクラスタリング
オンプレミスから AWS への劇的ビフォーアフター
オンプレミスから AWS への劇的ビフォーアフター
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerクイックツアー
Dockerクイックツアー
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
Ähnlich wie VagrantユーザのためのDocker入門
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
Masashi Shinbara
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
Masashi Shinbara
Dockerハンズオン
Dockerハンズオン
Kazuyuki Mori
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
Takashi Makino
Docker handson
Docker handson
koda3
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方
Kento Aoyama
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Masahito Zembutsu
Docker実践入門
Docker実践入門
hiro nemu
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
Ryosuke Uchiyama
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
Masashi Shinbara
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
Takashi Kanai
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Docker社内勉強会
Docker社内勉強会
osamu_takezawa
Dockerの導入
Dockerの導入
regret raym
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
Ähnlich wie VagrantユーザのためのDocker入門
(20)
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない! Vagrant で作る PHP 開発環境
Dockerハンズオン
Dockerハンズオン
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
Docker handson
Docker handson
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
ゆるふわなDockerの使い方
ゆるふわなDockerの使い方
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Docker実践入門
Docker実践入門
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Docker社内勉強会
Docker社内勉強会
Dockerの導入
Dockerの導入
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
Mehr von Masashi Shinbara
日本語消えたスライド
日本語消えたスライド
Masashi Shinbara
Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-
Masashi Shinbara
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
Masashi Shinbara
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Masashi Shinbara
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Masashi Shinbara
わかってるフレームワーク Laravel
わかってるフレームワーク Laravel
Masashi Shinbara
開発現場で活用するVagrant
開発現場で活用するVagrant
Masashi Shinbara
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
Masashi Shinbara
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
Masashi Shinbara
Composer 再入門
Composer 再入門
Masashi Shinbara
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
Masashi Shinbara
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
Masashi Shinbara
いまどきのPHP
いまどきのPHP
Masashi Shinbara
Mehr von Masashi Shinbara
(20)
日本語消えたスライド
日本語消えたスライド
Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
わかってるフレームワーク Laravel
わかってるフレームワーク Laravel
開発現場で活用するVagrant
開発現場で活用するVagrant
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
Composer 再入門
Composer 再入門
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
いまどきのPHP
いまどきのPHP
VagrantユーザのためのDocker入門
1.
2014/04/12 shin1x1 第3回 コンテナ型仮想化の情報交換会@大阪 Vagrantユーザための Docker入門
2.
Agenda (c) 2014 Masashi
Shinbara @shin1x1 • Dockerとは • Dockerを触ってみる • Vagrantとの比較 • ユースケースに見る • まとめ
3.
忙しい人のための Docker解説 (c) 2014 Masashi
Shinbara @shin1x1
4.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerの特徴1 コンテナ型なので 起動マジ速い!
5.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerの特徴2 レイヤードファイルシステム ディスク、ネットワーク節約 マジeco !!
6.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerの特徴3 コンテナがどこでも動く マジポータブル!
7.
(c) 2014 Masashi
Shinbara @shin1x1 Cool だろ?
8.
Dockerとは (c) 2014 Masashi
Shinbara @shin1x1
9.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerとは • Docker社(旧dotCloud社)が開発したOSS • golang で実装 • コンテナ技術を使った軽量な仮想環境 • レイヤによる差分ファイルシステム • コンテナ(イメージ)配布システム
10.
(c) 2014 Masashi
Shinbara @shin1x1 Docker について http://www.slideshare.net/dotCloud/docker-intro- november
11.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナとVM http://www.slideshare.net/dotCloud/docker-intro-november
12.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerコンテナ http://www.slideshare.net/dotCloud/docker-intro-november
13.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerシステム概要 http://www.slideshare.net/dotCloud/docker-intro-november
14.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerコンテナの更新 http://www.slideshare.net/dotCloud/docker-intro-november
15.
(c) 2014 Masashi
Shinbara @shin1x1 レイヤファイルシステム http://docs.docker.io/en/latest/terms/image/
16.
(c) 2014 Masashi
Shinbara @shin1x1 レイヤファイルシステム http://docs.docker.io/en/latest/terms/image/
17.
(c) 2014 Masashi
Shinbara @shin1x1 レイヤファイルシステム http://docs.docker.io/en/latest/terms/image/
18.
(c) 2014 Masashi
Shinbara @shin1x1 レイヤファイルシステム http://docs.docker.io/en/latest/terms/image/
19.
Dockerを 触ってみる (c) 2014 Masashi
Shinbara @shin1x1
20.
(c) 2014 Masashi
Shinbara @shin1x1 OSXで試す • OSX では、Docker コマンドだけ使えるが、 Dockerコンテナは動かない • VM 等で、Linux 環境を用意する • Linux 環境として、boot2docker が手軽 • 今回は、Vagrant で CentOS 環境を使う
21.
(c) 2014 Masashi
Shinbara @shin1x1 なぜ boot2docker 使わない? • Vagrant なら、IP の割り当てが楽 • Vagrant なら、synced_folder が便利 • VM の起動は時間がかかるが、あとは一緒
22.
(c) 2014 Masashi
Shinbara @shin1x1 インストール(OSX) ! $ brew install docker! • Homebrew で docker インストール
23.
(c) 2014 Masashi
Shinbara @shin1x1 Linux環境を用意(OSX) ! $ git clone https://github.com/shin1x1/vagrant- centos-docker.git! $ cd vagrant-centos-docker! $ vagrant up! • Vagrant で Docker デーモン(CentOS)を起動
24.
(c) 2014 Masashi
Shinbara @shin1x1 CentOSでのDocker $ sudo sed -i 's,^other_args="",other_args="-H tcp://0.0.0.0:4243 -H unix:// -dns 8.8.8.8",g' /etc/sysconfig/docker • unixドメインソケットでのみ通信可能なので、 TCP/IP で待ち受けるように変更 • /etc/sysconfig/docker other_args="-H tcp://0.0.0.0:4243 -H unix:// -dns 8.8.8.8"
25.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerホスト設定(OSX) ! $ docker -H tcp://localhost:4243 info! • Docker コマンドに -H オプションで指定 ! $ export DOCKER_HOST=tcp://localhost:4243! $ docker info! • 環境変数で設定しておくと楽
26.
(c) 2014 Masashi
Shinbara @shin1x1 ベースイメージ取得 $ docker search centos • イメージを探す $ docker pull centos • イメージのダウンロード $ docker images! REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE! centos 6.4 539c0211cd76 12 months ago 300.6 MB! centos latest 539c0211cd76 12 months ago 300.6 MB • キャッシュしているイメージを表示
27.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナを起動 $ docker run centos cat /etc/redhat-release! CentOS release 6.4 (Final) • コンテナを起動して、cat を実行 $ docker run -i -t centos /bin/bash ! bash-4.1# • コンテナを起動して、Bash を実行
28.
(c) 2014 Masashi
Shinbara @shin1x1 実行コンテナを確認 $ docker ps! CONTAINER ID IMAGE COMMAND CREATED ! fa7c9e516c61 centos:6.4 /bin/bash 6 minutes ago • 実行中コンテナを表示 $ docker ps -a! CONTAINER ID IMAGE COMMAND CREATED STATUS! 8a021062464e centos:6.4 /bin/bash 7 seconds ago Up 6 seconds! 5dd90f9483d3 centos:6.4 cat /etc/redhat-rele 29 seconds ago Exit 0 • 全て(停止コンテナ含めて)表示
29.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナをイメージ化 $ docker commit CONTAINER_ID IMAGE_NAME! xxxxxxxxxxxxxxxxxxxxx! ! $ docker images! ! $ docker run IMAGE_NAME php -v! PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)! Copyright (c) 1997-2010 The PHP Group! Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies • コンテナをイメージ化
30.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナ構築を自動化 $ vim Dockerfile! FROM centos! MAINTAINER shin1x1 <shin1x1@gmail.com>! ! #! # httpd! RUN yum -y install httpd! ! #! # PHP! RUN yum -y install php! ! CMD ["/usr/sbin/apachectl", "-DFOREGROUND"]! • Dockerfile に構築手順を書く
31.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナ構築を自動化 $ docker build -t shin1x1/httpd_php .! Uploading context 150 kB! Uploading context! Step 0 : FROM centos! ---> 539c0211cd76! Step 1 : MAINTAINER shin1x1 <shin1x1@gmail.com>! ---> Using cache! ---> b84d1c89ba69! Step 2 : RUN yum -y install httpd! ---> Using cache! ---> 7abc65b054a8! Step 3 : RUN yum -y install php! ---> Using cache! ---> 792d88165f34! Step 4 : CMD ["/usr/sbin/apachectl", "-DFOREGROUND"]! ---> Using cache! ---> 04626460b476! Successfully built 04626460b476 • イメージをビルド
32.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナ構築を自動化 $ docker run shin1x1/httpd_php php -v! PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)! Copyright (c) 1997-2010 The PHP Group! Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies! • 構築したイメージをコンテナとして起動
33.
(c) 2014 Masashi
Shinbara @shin1x1 コンテナをサービス化 $ docker run -d -p 80:80 shin1x1/httpd_php! xxxxxxxxxxxxxxxxxxxxxxxx! • -d = コンテナをバックグラウンドで動かす • -p = ポートマッピング(ホスト:コンテナ) • -v = ホストディレクトリをコンテナからマウント • コンテナのプロセスはフォアグラウンドで動かす • http://192.168.33.10/ でアクセス可能
34.
(c) 2014 Masashi
Shinbara @shin1x1 Vagrantとの比較 ※Vagrant で VirtualBox を使う際と比較
35.
(c) 2014 Masashi
Shinbara @shin1x1 速くなったVagrant? • いいえ、違います。 • ユースケースは似てるとこもありますが、 異なるものと思ったほうが良いです。
36.
(c) 2014 Masashi
Shinbara @shin1x1 似てるところ • 独立した仮想環境が容易に作れる • ベースイメージを利用 • 構築手順(Dockerfile, Vagrantfile)を 書いて、自動構築 • どの環境でも同じ環境が作れる
37.
(c) 2014 Masashi
Shinbara @shin1x1 違うところ • 動作方式(ハイパーバイザー型とコンテナ型) • 起動速度 • ファイルシステム (フルバックアップと差分バックアップ) • ポータビリティ • 想定しているユースケース
38.
(c) 2014 Masashi
Shinbara @shin1x1 ユースケースに見る VagrantとDocker
39.
(c) 2014 Masashi
Shinbara @shin1x1 検証環境に使う • ミドルウェアのインストールや設定の検証など • 手軽に作って、壊してができるので良い • 検証用のベース image を用意しておく • image のキャッシュを生かすため 同じ VM 上で Docker デーモンを動かす
40.
(c) 2014 Masashi
Shinbara @shin1x1 開発環境に使う • OSX の IDEで書いて、コードの実行はVM => Vagrant の synced_folder を利用 • プロジェクト毎に独立した環境にしたい => Vagrant の方がより独立した環境に • 全く同じ環境にしたい => アクセス IP も固定した方が吉 • OSXでは、どのみちVMが必要 • Vagrant 内でプロビジョナで Docker 使うならアリ
41.
(c) 2014 Masashi
Shinbara @shin1x1 CI環境に使う • Jenkinsでオールテスト実行環境として利用 • ビルドの度にコンテナを生成して、テスト実行 • ビルド毎に独立した環境 • 軽量な動作で複数実行されても問題無い • いま、一番導入しやすいところ • Vagrant だとオーバーヘッドが大きい
42.
(c) 2014 Masashi
Shinbara @shin1x1 CI運用例 Mac private repo (1) git push CI サーバ(さくらVPS) (2) hook (3) git pull (4) docker build & docker run
43.
(c) 2014 Masashi
Shinbara @shin1x1 CI運用例 • Jenkinsプロジェクト設定(シェルの実行) sudo docker build -t ${JOB_NAME} .! sudo docker run -v ${WORKSPACE}/src:/share ${JOB_NAME}
44.
(c) 2014 Masashi
Shinbara @shin1x1 本番環境に使う • Docker の主戦場 • PaaS / DaaS (Docker as a Service) • サーバでコンテナビルド? • ビルドしたコンテナをpush? • まだ模索中…
45.
(c) 2014 Masashi
Shinbara @shin1x1 まとめ
46.
(c) 2014 Masashi
Shinbara @shin1x1 まとめ • 軽量でポータブルなコンテナ • OSXで使うなら、VM が必要 • Docker ≠ better Vagrant
47.
@shin1x1 (c) 2014 Masashi
Shinbara @shin1x1
48.
PHPカンファレンス関西2014 (c) 2014 Masashi
Shinbara @shin1x1 http://conference.kphpug.jp/2014/ • 2014/06/28(土) • 大阪産業創造館 • セッション募集中!!
Jetzt herunterladen