DockerComposeでContainerのIPアドレスの固定化をするかー
こんばんは、葛の葉です。
久しぶりにDockerのことを書こうと思いました。
今回はDocker-ComposeでcontainerのIPアドレスを固定化を行いました。
networks: aplication_net: ipv4_address: 172.19.x.x
DockerComposeで各コンテナの設定部分に上記の部分を記載すればよいです。
aplication_net
はDockerNetworkの名称になります。
ipv4_address: 172.19.x.x
は使用するIPアドレスです。
また、コンテナ間にDockerNetworkを構成する記述を行います。
networks: aplication_net: driver: bridge ipam: driver: default config: - subnet: 172.19.0.0/24
aplication_net:
部分はDockerNetwork名を記載します。
subnet: 172.19.0.0/24
は使用したいネットワークアドレスとそのサブネットマスクをプレフィックス長で記載します。
なお、cofig:
下ではgateway:
というプロパティ、デフォルトゲートウェイの設定もあるそうなのですか、v3
では出来ないようです。
デフォルトゲートウェイがどういうIPアドレスであるかが不明なため、今回は172.19.0.1
を想定しています。
docker-compose.yml
は以下の通りになります。
services: mysql: image: ./mysql ~~~~~~~~~~~中略~~~~~~~~~~~~~~~~~~ networks: aplication_net: ipv4_address: 172.19.0.2 app: build: ./app ~~~~~~~~~~~中略~~~~~~~~~~~~~~~~~~ networks: aplication_net: ipv4_address: 172.19.0.3 nginx: image: nginx ~~~~~~~~~~~中略~~~~~~~~~~~~~~~~~~ networks: aplication_net: ipv4_address: 172.19.0.4 networks: aplication_net: driver: bridge ipam: driver: default config: - subnet: 172.19.0.0/24
docker-compose up
でコンテナを起動しましょう。
docker exec -it コンテナ名 /bin/bash
でコンテナ内に入り、hostname -i
でIPアドレスを確認してみましょう。
root@xxxxxxxxxxxx:/# hostname -i 172.19.0.3
IPアドレスが表示されました!