備忘録とかいろいろ

駆け出しのインフラエンジニアです。自分用のメモです

docker 0.11のHost networkingを試してみた

dockerの最新版0.11がリリースされたので、
新しい機能のHost Networkingを試した際のメモ。


まずはさくっとアップデートする。

現在のバージョン確認

$ docker -v
Docker version 0.10.0, build dc9c28f


アップデート

$ sudo apt-get install lxc-docker 


バージョン確認。OK。

$ docker -v
Docker version 0.11.1, build fb99f99


http://blog.docker.io/2014/05/docker-0-11-release-candidate-for-1-0/
に書いてある通りに--net=hostを指定してコンテナを起動する

$ sudo docker run -it --net=host ubuntu/base /bin/bash


起動できたのでIPアドレスを確認してみる

root@panda:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:15:5d:0a:d0:05 brd ff:ff:ff:ff:ff:ff
    inet 172.19.10.219/24 brd 172.19.10.255 scope global eth0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
    inet 172.17.42.1/16 scope global docker0


今まではコンテナを起動する際に

$ sudo docker run -it -p 8080:80 -p 2222:22 ubuntu/base /bin/bash

のようにしてポートフォワーディングでコンテナの80番ポートや22番ポートにアクセスしていたが、--net=hostを指定することで、コンテナのポートを直接叩くことができるようになる。