Docker/設定と動作確認
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[labs.beatcraft.com]]~
[[Docker]]~
#contents
**Docker の設定と動作確認 [#zd719e92]
Docker を使って、サーバー環境の移動を試してみます。~
今回は実ハードウェアを複数用意する代わりに以下の環境を使...
~
-Mac mini Late 2012~
プロセッサ 2.5 GHz Intel Core i5~
メモリ 4 GB 1600 MHz DDR3~
ソフトウェア OS X 10.9.3(13D65)~
~
-VMware Fusion~
バージョン 6.0.3 (1747349)~
***1 CentOS VM の用意(所要時間約 20分) [#w9bc8c08]
VM を作成し、CentOS 6.5 (64bit) をインストールDVDからイン...
~
VM の設定~
プロセッサコア 1~
メモリ 1024M~
ネットワークアダプタ ブリッジ自動検出~
ハードディスク 20G~
~
CentOS のインストーラーでほぼ全て default の Workstation ...
***2 Docker のインストール(所要時間約 2分) [#y8a533bb]
用意出来た VM上の CentOS にログインし、Docker をインスト...
Docker 公式 web ページの~
Red Hat Enterprise Linux へのインストール手順~
http://docs.docker.io/installation/rhel/~
に従います。~
Extra Packages for Enterprise Linux (EPEL) リポジトリの追加
$ sudo yum -y install http://dl.fedoraproject.org/pub/ep...
docker-io パッケージのインストール
$ sudo yum install docker-io
--- 中略 ---
Installed:
docker-io.x86_64 0:0.11.1-4.el6 ...
Dependency Installed:
libcgroup.x86_64 0:0.40.rc1-5.el6_5.1 lxc.x86_...
lxc-libs.x86_64 0:0.9.0-2.el6
Complete!
docker のベースになっている lxc 関連ファイルが依存関係を...
Docker デーモンの起動
$ sudo service docker start
マシン起動時の Docker デーモン自動起動設定
$ sudo chkconfig docker on
インストールが完了したら docker の情報を確認します。
$ sudo docker info
[sudo] password for beat:
Containers: 0
Images: 0
Storage Driver: devicemapper
Pool Name: docker-253:0-797918-pool
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemappe...
Data Space Used: 2195.8 Mb
Data Space Total: 102400.0 Mb
Metadata Space Used: 0.7 Mb
Metadata Space Total: 2048.0 Mb
Execution Driver: lxc-0.9.0
Kernel Version: 2.6.32-431.17.1.el6.x86_64
まだインストール直後なのでコンテナもイメージも 0、~
関連ファイルは /var/lib/docker/ の下に入ります。
***3 ベースイメージの取得 (所用時間約 5分) [#p85ecb42]
docker pull コマンドで Django を動作させるサーバーの元に...
$ sudo docker pull centos
取得した CentOS ベースイメージを確認します。
$ sudo docker images
[sudo] password for beat:
REPOSITORY TAG IMAGE ID ...
centos centos6 0b443ba03958 ...
centos latest 0b443ba03958 ...
centos 6.4 539c0211cd76 ...
二つのイメージがダウンロードされました。~
最新版には centos6 と latest 二つのタグが付けられているた...
最新版の方のイメージを、シェルが立ち上がり作業できる設定...
この時 Django の default 使用ポート 8000 をフォワードして...
$ sudo docker run -i -t -p :8000 centos:centos6 bash
bash-4.1#
docker image の公式リポジトリは海外のサーバーにあるため、...
取得に時間のかかることがあります。
*** 4 Django 依存パッケージのインストール (所要時間約 2...
コンテナの shell でインストールを行います。~
まず setuptools をインストール
bash-4.1# yum install python-setuptools
easey_install で pip をインストール
bash-4.1# easy_install pip
*** 5 Django のインストールと動作確認(所用時間約 3分) [...
pip で Django をインストールします。
bash-4.1# pip install django
コンテナのインタフェースのIPアドレスを確認します。~
以下の例ではコンテナ内で確認していますが、docker ps でコ...
docker inspect コンテナID の出力の IPAddress で確認するこ...
bash-4.1# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 92:C4:5C:74:DC:F3
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255....
inet6 addr: fe80::90c4:5cff:fe74:dcf3/64 Scope...
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 fra...
TX packets:4 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:1000
RX bytes:238 (238.0 b) TX bytes:328 (328.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 fra...
TX packets:0 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Django の最も簡単な動作確認を行います。
bash-4.1# cd /home/
bash-4.1# django-admin.py startproject mysite
bash-4.1# cd mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 11:30:12
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
正常に起動したら VM の CentOS 上のwebブラウザで上記URLに...
Django のデフォルトページが表示されたらOKです。
*** 6 仮想環境のイメージ化(所用時間約 10分) [#pe840a1e]
3 から 5 までの手順を行ったコンテナは bash を抜けると終了...
そこでベースイメージに加えた変更を再利用できるよう、コン...
docker ps コマンドで以前に使用したコンテナのリストを表示...
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND ...
d17bf0933bfb centos:centos6 bash ...
95aaa7e741df centos:centos6 bash ...
47ee760a5dca centos:centos6 bash ...
4711136aef8a centos:centos6 bash ...
5de34b44f509 centos:centos6 bash ...
7b8865d3587b centos:centos6 bash ...
上記のような形式で、それまでに起動させたコンテナが表示さ...
今終了させたばかりのコンテナを確認し、docker commit コマ...
$ sudo docker commit d17bf0933bfb django-test
イメージが正常に作成されたか確認します。
$ sudo docker images
REPOSITORY TAG IMAGE ID ...
django-test latest f7961339d47b ...
centos centos6 0b443ba03958 ...
centos latest 0b443ba03958 ...
centos 6.4 539c0211cd76 ...
作成したイメージを起動し、先ほど shell 上で加えた変更が利...
$ sudo docker run -i -t -p :8000 django-test:latest bash
bash-4.1# cd /home/mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 11:30:12
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
内部に変更が保存されており、ブラウザで Django にアクセス...
このコンテナイメージを他の環境に移動できるよう export し...
$ sudo docker ps -a
[sudo] password for beat:
CONTAINER ID IMAGE COMMAND ...
94cbb5bca398 django-test:latest bash ...
d17bf0933bfb centos:centos6 bash ...
95aaa7e741df centos:centos6 bash ...
47ee760a5dca centos:centos6 bash ...
4711136aef8a centos:centos6 bash ...
5de34b44f509 centos:centos6 bash ...
7b8865d3587b centos:centos6 bash ...
最後に起動したコンテナを export します。export 対象はコン...
$ sudo docker export 94cbb5bca398 > django-test-export.tar
$ ls -alh django-test-export.tar
-rw-rw-r--. 1 beat beat 362M 5月 26 21:07 2014 django-t...
export したイメージのサイズは django images で確認した dj...
362M になりました。
***7 新たな VM の作成(所用時間約 20分) [#g7ed6e8c]
コンテナイメージを移動して動作させる先の環境として、1 と...
docker によって動作するコンテナイメージの移動が可能である...
1 の VM をそのままコピーして利用することはせず、同じ手順...
*** 8 Docker のインストール(所要時間約 3分) [#gc2e5367]
2 の手順と同じ手順を行います。
*** 9 仮想環境の再現(所用時間約 3分) [#x1995ebf]
6 の手順で export して作成したアーカイブファイルを scp な...
docker の import コマンドで import します。
$ sudo -s
# cat django-test-export.tar | docker import - beat:djan...
0698f1626b7a1e3946de1ec3a3abc38cba6ba91726676341208062e4...
正しく import されたか確認します。
$ sudoo docker images
REPOSITORY TAG IMAGE ID ...
beat django-test 5df9c99c50ff ...
*** 10 移動したコンテナでの Django 動作確認(所要時間約 2...
import したイメージを起動します。
$ sudo docker run -i -t -p 8000 beat:django-test bash
bash-4.1#
bash-4.1# cd /home/mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 13:11:59
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
VM 上の web ブラウザから 172.17.0.2:8000 へアクセスして D...
移動は成功です。
**時間から見た効果 [#z4e2eab4]
今回の試行では、~
-Django サーバの動作するイメージを作成するのに要した時間...
計32分~
-イメージの移動先を用意して動作させるのに要した時間(7〜1...
計28分~
で同じサーバー環境を別途一から作るのよりわずかに効率化で...
実際のサービスに使用するようなサーバー環境を作成する場合...
3〜5 の仮想環境作成とサーバーアプリケーションのセットアッ...
その部分を一度だけ行ってイメージ化すれば、7〜10 は今回の...
サーバー環境設定の効率化に大きな効果が期待できます。~
~
**使ってみた感想 [#fbb7255c]
イメージとコンテナを別々に操作する概念と、コンテナ内へネ...
最初は分かりにくい感じがあるのですが、一旦把握できれば~
仮想化したイメージの扱いは楽で作業時間も非常に短く済み、~
有用に感じました。
**Dockerfile [#r7cf8395]
今回の試行例では 3〜5 の作業を shell から直接コマンドを入...
Dockerfile という定義ファイルを作成してイメージを作成する...
作業内容の記録と自動化のため Dockerfile を記述してイメー...
Dockerfile を作成したら docker build コマンドを実行するだ...
-ベースイメージの取得
-yum や apt などを使ったアプリケーションのインストール
-git などを使ったソースコードやweb用静的コンテンツの取得...
-イメージのネットワーク設定
などを一括して行うことができます。
**コンテナのネットワーク [#i570048d]
docker サービスを起動すると、コンテナ内との接続用にブリッ...
$ /sbin/ifconfig docker0
docker0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255...
inet6 addr: fe80::389f:86ff:feca:5735/64 Scope...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metr...
RX packets:54 errors:0 dropped:0 overruns:0 fr...
TX packets:38 errors:0 dropped:0 overruns:0 ca...
collisions:0 txqueuelen:0
RX bytes:9164 (8.9 KiB) TX bytes:3427 (3.3 KiB)
このブリッジは iptables による IPマスカレードで外部ネット...
(ですから docker 起動中は iptables を停止してはいけませ...
コンテナを起動すると、veth**(OpenVZ由来の Virtual Ethern...
コンテナ内部の eth0 と仮想的な組を作って接続されます。~
vethKT14kb Link encap:Ethernet HWaddr FE:92:46:C6:45:B1
inet6 addr: fe80::fc92:46ff:fec6:45b1/64 Scope...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metr...
RX packets:3 errors:0 dropped:0 overruns:0 fra...
TX packets:3 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:1000
RX bytes:238 (238.0 b) TX bytes:238 (238.0 b)
コンテナ内部からはこの veth**--docker0 経由で外部のネット...
コンテナのネットワークへはホストLinux 上からしかアクセス...
~
ホストLinux の外部ネットワークからコンテナ上のサーバーへ...
Redirect Ports~
http://docs.docker.io/use/port_redirection/~
に解説されているように、 docker run 時に行う port のリダ...
外部から到達可能な IPアドレスへリダイレクトを行うか、~
コンテナに追加の veth を加えてホストOSのネットワークイン...
Pipework: Software-Defined Networking for Linux Containers~
https://github.com/jpetazzo/pipework~
という shellscript のツールを使用します。~
~
イメージの起動時に
$ sudo docker run -i -t -p 8000 beat:django-test bash
の代わりに
$ sudo docker run -i -t -p 192.168.0.161:80:8000 beat:dj...
とコンテナ内部の 8000 ポートをホストOS eth0 の IPアドレス...
コンテナ内部で起動した django (python manage.py runserve...
192.168.0.161:80 へアクセスすることで同じネットワークに属...
アクセス可能になります。
** 更新履歴 [#y07b4f1d]
2014/06/13 [[Docker]] に関するページの階層整理~
RIGHT:Satoshi OTSUKA
終了行:
[[labs.beatcraft.com]]~
[[Docker]]~
#contents
**Docker の設定と動作確認 [#zd719e92]
Docker を使って、サーバー環境の移動を試してみます。~
今回は実ハードウェアを複数用意する代わりに以下の環境を使...
~
-Mac mini Late 2012~
プロセッサ 2.5 GHz Intel Core i5~
メモリ 4 GB 1600 MHz DDR3~
ソフトウェア OS X 10.9.3(13D65)~
~
-VMware Fusion~
バージョン 6.0.3 (1747349)~
***1 CentOS VM の用意(所要時間約 20分) [#w9bc8c08]
VM を作成し、CentOS 6.5 (64bit) をインストールDVDからイン...
~
VM の設定~
プロセッサコア 1~
メモリ 1024M~
ネットワークアダプタ ブリッジ自動検出~
ハードディスク 20G~
~
CentOS のインストーラーでほぼ全て default の Workstation ...
***2 Docker のインストール(所要時間約 2分) [#y8a533bb]
用意出来た VM上の CentOS にログインし、Docker をインスト...
Docker 公式 web ページの~
Red Hat Enterprise Linux へのインストール手順~
http://docs.docker.io/installation/rhel/~
に従います。~
Extra Packages for Enterprise Linux (EPEL) リポジトリの追加
$ sudo yum -y install http://dl.fedoraproject.org/pub/ep...
docker-io パッケージのインストール
$ sudo yum install docker-io
--- 中略 ---
Installed:
docker-io.x86_64 0:0.11.1-4.el6 ...
Dependency Installed:
libcgroup.x86_64 0:0.40.rc1-5.el6_5.1 lxc.x86_...
lxc-libs.x86_64 0:0.9.0-2.el6
Complete!
docker のベースになっている lxc 関連ファイルが依存関係を...
Docker デーモンの起動
$ sudo service docker start
マシン起動時の Docker デーモン自動起動設定
$ sudo chkconfig docker on
インストールが完了したら docker の情報を確認します。
$ sudo docker info
[sudo] password for beat:
Containers: 0
Images: 0
Storage Driver: devicemapper
Pool Name: docker-253:0-797918-pool
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemappe...
Data Space Used: 2195.8 Mb
Data Space Total: 102400.0 Mb
Metadata Space Used: 0.7 Mb
Metadata Space Total: 2048.0 Mb
Execution Driver: lxc-0.9.0
Kernel Version: 2.6.32-431.17.1.el6.x86_64
まだインストール直後なのでコンテナもイメージも 0、~
関連ファイルは /var/lib/docker/ の下に入ります。
***3 ベースイメージの取得 (所用時間約 5分) [#p85ecb42]
docker pull コマンドで Django を動作させるサーバーの元に...
$ sudo docker pull centos
取得した CentOS ベースイメージを確認します。
$ sudo docker images
[sudo] password for beat:
REPOSITORY TAG IMAGE ID ...
centos centos6 0b443ba03958 ...
centos latest 0b443ba03958 ...
centos 6.4 539c0211cd76 ...
二つのイメージがダウンロードされました。~
最新版には centos6 と latest 二つのタグが付けられているた...
最新版の方のイメージを、シェルが立ち上がり作業できる設定...
この時 Django の default 使用ポート 8000 をフォワードして...
$ sudo docker run -i -t -p :8000 centos:centos6 bash
bash-4.1#
docker image の公式リポジトリは海外のサーバーにあるため、...
取得に時間のかかることがあります。
*** 4 Django 依存パッケージのインストール (所要時間約 2...
コンテナの shell でインストールを行います。~
まず setuptools をインストール
bash-4.1# yum install python-setuptools
easey_install で pip をインストール
bash-4.1# easy_install pip
*** 5 Django のインストールと動作確認(所用時間約 3分) [...
pip で Django をインストールします。
bash-4.1# pip install django
コンテナのインタフェースのIPアドレスを確認します。~
以下の例ではコンテナ内で確認していますが、docker ps でコ...
docker inspect コンテナID の出力の IPAddress で確認するこ...
bash-4.1# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 92:C4:5C:74:DC:F3
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255....
inet6 addr: fe80::90c4:5cff:fe74:dcf3/64 Scope...
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 fra...
TX packets:4 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:1000
RX bytes:238 (238.0 b) TX bytes:328 (328.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 fra...
TX packets:0 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Django の最も簡単な動作確認を行います。
bash-4.1# cd /home/
bash-4.1# django-admin.py startproject mysite
bash-4.1# cd mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 11:30:12
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
正常に起動したら VM の CentOS 上のwebブラウザで上記URLに...
Django のデフォルトページが表示されたらOKです。
*** 6 仮想環境のイメージ化(所用時間約 10分) [#pe840a1e]
3 から 5 までの手順を行ったコンテナは bash を抜けると終了...
そこでベースイメージに加えた変更を再利用できるよう、コン...
docker ps コマンドで以前に使用したコンテナのリストを表示...
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND ...
d17bf0933bfb centos:centos6 bash ...
95aaa7e741df centos:centos6 bash ...
47ee760a5dca centos:centos6 bash ...
4711136aef8a centos:centos6 bash ...
5de34b44f509 centos:centos6 bash ...
7b8865d3587b centos:centos6 bash ...
上記のような形式で、それまでに起動させたコンテナが表示さ...
今終了させたばかりのコンテナを確認し、docker commit コマ...
$ sudo docker commit d17bf0933bfb django-test
イメージが正常に作成されたか確認します。
$ sudo docker images
REPOSITORY TAG IMAGE ID ...
django-test latest f7961339d47b ...
centos centos6 0b443ba03958 ...
centos latest 0b443ba03958 ...
centos 6.4 539c0211cd76 ...
作成したイメージを起動し、先ほど shell 上で加えた変更が利...
$ sudo docker run -i -t -p :8000 django-test:latest bash
bash-4.1# cd /home/mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 11:30:12
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
内部に変更が保存されており、ブラウザで Django にアクセス...
このコンテナイメージを他の環境に移動できるよう export し...
$ sudo docker ps -a
[sudo] password for beat:
CONTAINER ID IMAGE COMMAND ...
94cbb5bca398 django-test:latest bash ...
d17bf0933bfb centos:centos6 bash ...
95aaa7e741df centos:centos6 bash ...
47ee760a5dca centos:centos6 bash ...
4711136aef8a centos:centos6 bash ...
5de34b44f509 centos:centos6 bash ...
7b8865d3587b centos:centos6 bash ...
最後に起動したコンテナを export します。export 対象はコン...
$ sudo docker export 94cbb5bca398 > django-test-export.tar
$ ls -alh django-test-export.tar
-rw-rw-r--. 1 beat beat 362M 5月 26 21:07 2014 django-t...
export したイメージのサイズは django images で確認した dj...
362M になりました。
***7 新たな VM の作成(所用時間約 20分) [#g7ed6e8c]
コンテナイメージを移動して動作させる先の環境として、1 と...
docker によって動作するコンテナイメージの移動が可能である...
1 の VM をそのままコピーして利用することはせず、同じ手順...
*** 8 Docker のインストール(所要時間約 3分) [#gc2e5367]
2 の手順と同じ手順を行います。
*** 9 仮想環境の再現(所用時間約 3分) [#x1995ebf]
6 の手順で export して作成したアーカイブファイルを scp な...
docker の import コマンドで import します。
$ sudo -s
# cat django-test-export.tar | docker import - beat:djan...
0698f1626b7a1e3946de1ec3a3abc38cba6ba91726676341208062e4...
正しく import されたか確認します。
$ sudoo docker images
REPOSITORY TAG IMAGE ID ...
beat django-test 5df9c99c50ff ...
*** 10 移動したコンテナでの Django 動作確認(所要時間約 2...
import したイメージを起動します。
$ sudo docker run -i -t -p 8000 beat:django-test bash
bash-4.1#
bash-4.1# cd /home/mysite
bash-4.1# python manage.py runserver 172.17.0.2:8000
Validating models...
0 errors found
May 26, 2014 - 13:11:59
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://172.17.0.2:8000/
Quit the server with CONTROL-C.
VM 上の web ブラウザから 172.17.0.2:8000 へアクセスして D...
移動は成功です。
**時間から見た効果 [#z4e2eab4]
今回の試行では、~
-Django サーバの動作するイメージを作成するのに要した時間...
計32分~
-イメージの移動先を用意して動作させるのに要した時間(7〜1...
計28分~
で同じサーバー環境を別途一から作るのよりわずかに効率化で...
実際のサービスに使用するようなサーバー環境を作成する場合...
3〜5 の仮想環境作成とサーバーアプリケーションのセットアッ...
その部分を一度だけ行ってイメージ化すれば、7〜10 は今回の...
サーバー環境設定の効率化に大きな効果が期待できます。~
~
**使ってみた感想 [#fbb7255c]
イメージとコンテナを別々に操作する概念と、コンテナ内へネ...
最初は分かりにくい感じがあるのですが、一旦把握できれば~
仮想化したイメージの扱いは楽で作業時間も非常に短く済み、~
有用に感じました。
**Dockerfile [#r7cf8395]
今回の試行例では 3〜5 の作業を shell から直接コマンドを入...
Dockerfile という定義ファイルを作成してイメージを作成する...
作業内容の記録と自動化のため Dockerfile を記述してイメー...
Dockerfile を作成したら docker build コマンドを実行するだ...
-ベースイメージの取得
-yum や apt などを使ったアプリケーションのインストール
-git などを使ったソースコードやweb用静的コンテンツの取得...
-イメージのネットワーク設定
などを一括して行うことができます。
**コンテナのネットワーク [#i570048d]
docker サービスを起動すると、コンテナ内との接続用にブリッ...
$ /sbin/ifconfig docker0
docker0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255...
inet6 addr: fe80::389f:86ff:feca:5735/64 Scope...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metr...
RX packets:54 errors:0 dropped:0 overruns:0 fr...
TX packets:38 errors:0 dropped:0 overruns:0 ca...
collisions:0 txqueuelen:0
RX bytes:9164 (8.9 KiB) TX bytes:3427 (3.3 KiB)
このブリッジは iptables による IPマスカレードで外部ネット...
(ですから docker 起動中は iptables を停止してはいけませ...
コンテナを起動すると、veth**(OpenVZ由来の Virtual Ethern...
コンテナ内部の eth0 と仮想的な組を作って接続されます。~
vethKT14kb Link encap:Ethernet HWaddr FE:92:46:C6:45:B1
inet6 addr: fe80::fc92:46ff:fec6:45b1/64 Scope...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metr...
RX packets:3 errors:0 dropped:0 overruns:0 fra...
TX packets:3 errors:0 dropped:0 overruns:0 car...
collisions:0 txqueuelen:1000
RX bytes:238 (238.0 b) TX bytes:238 (238.0 b)
コンテナ内部からはこの veth**--docker0 経由で外部のネット...
コンテナのネットワークへはホストLinux 上からしかアクセス...
~
ホストLinux の外部ネットワークからコンテナ上のサーバーへ...
Redirect Ports~
http://docs.docker.io/use/port_redirection/~
に解説されているように、 docker run 時に行う port のリダ...
外部から到達可能な IPアドレスへリダイレクトを行うか、~
コンテナに追加の veth を加えてホストOSのネットワークイン...
Pipework: Software-Defined Networking for Linux Containers~
https://github.com/jpetazzo/pipework~
という shellscript のツールを使用します。~
~
イメージの起動時に
$ sudo docker run -i -t -p 8000 beat:django-test bash
の代わりに
$ sudo docker run -i -t -p 192.168.0.161:80:8000 beat:dj...
とコンテナ内部の 8000 ポートをホストOS eth0 の IPアドレス...
コンテナ内部で起動した django (python manage.py runserve...
192.168.0.161:80 へアクセスすることで同じネットワークに属...
アクセス可能になります。
** 更新履歴 [#y07b4f1d]
2014/06/13 [[Docker]] に関するページの階層整理~
RIGHT:Satoshi OTSUKA
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。