LoginSignup
8
8

More than 5 years have passed since last update.

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

Posted at

はじめに

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のパターンは追加とかも含め便利なので試してみてくださいな。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8