2019年6月20日木曜日

docker-compose では link を指定しないでも同一ネットワーク内なら名前解決できる

概要

タイトル通りです
link が deprecated になり同一ネットワークにコンテナを配置することでホスト名でアクセスできるようになっているので動作確認してみました

環境

  • macOS 10.14.5
  • docker 18.09.2
  • docker-compose 1.23.2

docker-compose

  • vim docker-compose.yml
version: '2'
services:
  client:
    image: redis:latest
    command: ["redis-cli", "-h", "server", "info", "server"]
    depends_on:
      - "server"
  server:
    image: redis:latest

ポイントは command の部分で -h server という感じでホスト名を指定するところです
これで問題なく動作するか確認します

server が起動する前に確認のコマンドを投げないように depends_on を使っています

動作確認

  • docker-compose up -d
  • docker-compose logs client

info server の情報が表示されることを確認します
networks を指定しない場合は xxxx_default という名前のネットワークを自動で作成してそこに接続されます

  • docker inspect try_no_link_client_1 -f '{{.NetworkSettings.Networks}}'

=> map[try_no_link_default:0xc4205980c0]

参考サイト

0 件のコメント:

コメントを投稿