Docker撰写:将多个主机绑定到动态容器的IP

Max*_*ykh 4 docker docker-compose

我这样声明我的服务docker-compose.yml

wildfly:
  image: "myrepo/wildfly:latest"
  hostname: wildfly
Run Code Online (Sandbox Code Playgroud)

因此,compose将条目添加到/ etc / hosts:

172.18.0.4      wildfly
Run Code Online (Sandbox Code Playgroud)

172.18.0.4由泊坞窗自动生成。

但是我需要绑定some.host.name到此生成的IP,/etc/hosts以在/ etc / hosts中具有多个条目:

172.18.0.4      wildfly
172.18.0.4      some.host.name
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我尝试使用extra_hosts语法,但是docker-compose.yml我不知道将哪个IP分配给容器。

有人遇到过类似的问题吗?

Tar*_*ani 6

您应该使用支持别名的组合的版本“ 3”格式。由于您已经在使用受支持的Docker版本

version: '3'
services:
  wildfly:
    image: "myrepo/wildfly:latest"
    hostname: wildfly
    networks:
      default:
        aliases:
          - some.host.name
Run Code Online (Sandbox Code Playgroud)

由于docker现在使用其自己的内部DNS服务器,因此不会添加主机条目。如果您需要使用多个撰写文件才能访问服务。然后,您应该创建一个外部网络

docker network create commonnet
Run Code Online (Sandbox Code Playgroud)

然后在您的撰写中使用以下内容

version: '3'
services:
  wildfly:
    image: "myrepo/wildfly:latest"
    hostname: wildfly
    networks:
      commonnet:
        aliases:
          - some.host.name
networks:
  commonnet:
    external: true
Run Code Online (Sandbox Code Playgroud)