Posted at

Docker-Composeでnet: container:serviceを試す。(続き)

More than 3 years have passed since last update.


はじめに

docker-compose、ようやく1.2.0のrcが取れましたね。

というわけで、前回の投稿においてshellで無理やりやっていたネットワーク用のcontainerをdocker-composeで作るように修正してみました。


基本構造(おさらい)

今回作るサービスの構造はこんな感じです。

networkというコンテナはポートを外部に見せているだけで、各サービスはnetworkに相乗り(net:container:network)する形でつくります。

コンテナ構造


前回からの変更点


networkコンテナ

前回の投稿から追加されるnetworkコンテナの定義としては以下のようになります。


docker-compose.yml

network:

image: busybox
ports:
- "16667:16667"
- "127.0.0.1:9000:9000"
tty: true

ポイントとしてはtty: trueを指定すること。

指定しないとbusyboxはそのまま終了しちゃいます。


net: container:service

net: containerの指定の仕方は基本的にあまり変わってないです。


docker-compose.yml

znc:

image: jimeh/znc
expose:
- "16667"
volumes:
- $HOME/.znc:/znc-data
net: container:network

これまでは「net: "container:net_irc"」

とダブルクオート付きで書いていたところのダブルクオートをとっただけです。

(ダブルクオート付きだとどうなるかとかは未調査。)


実際のコード


docker-compose.yml

network:

image: busybox
ports:
- "16667:16667"
- "127.0.0.1:9000:9000"
tty: true
znc:
image: jimeh/znc
expose:
- "16667"
volumes:
- $HOME/.znc:/znc-data
net: container:network
bitlbee:
image: aostanin/bitlbee
expose:
- "6667"
volumes:
- $HOME/.bitlbee:/data
net: container:network
shout:
build: ./shout
expose:
- "9000"
volumes:
- $HOME/.shout:/root/.shout
net: container:network


おわりに。

前から待ち望んでいたアップデートがようやく来て、docker-composeにもっていた不満は一応解消された感じです。

複数コンテナを立ち上げないというのはあまりdocker-composeを活かしていない気もしますが、個人用途としてはnet: container:serviceのパターンは追加とかも含め便利なので試してみてくださいな。