docker のポートのIPアドレスを限定したい。
expose したポートを、bind するときに、よく見る例がコレ
docker run -p 80:80 ...
コレだと、0.0.0.0:80
にマッピングされる。グローバルアドレスにマッピングしてしまうのですよね。ちょっと先行き不安。
ローカル・ループバックに限定する
docker run -p 127.0.0.1:80:80 ...
IPv6の ループバックはダメみたい
::1
はダメだった。悲しい。そのうちなんとかなるかも。
takuya@ubuntu01:~/docker-test$ docker-compose up -d ERROR: The Compose file './docker-compose.yml' is invalid because: services.db.ports is invalid: Invalid port "::1:5432:5432", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
ipv6 の場合は [addr]
で囲めばいい
2024-09-01 見直したら、以前はv6わかってなかったんですよね。
docker run -p '[::1]:80:80' ...
v6 アドレスは、囲わないと動きませんね。
docker-compose の場合
docker-compose の yml の場合はこう書くといいみたい。
ports: - 127.0.0.1:5432:5432
なるほど、コレだとループバックだからiptables も考えなくていいから安心ですね。
参考資料
https://docs.docker.com/compose/compose-file/#ports
2024-09-01
v6 アドレスについて追記。