如何永久设置Docker容器的主机名/ IP

San*_*512 4 docker

有没有一种方法可以将主机名和IP永久设置为Docker中的容器。我想在一个虚拟机中创建一堆机器(容器),理想情况下使用主机名互相交谈。

ken*_*orb 6

您可以使用docker-compose工具创建具有特定主机名和地址的容器堆栈。

这是docker-compose.yml具有特定网络配置的示例:

version: "2"
services:
  host1:
    networks:
      mynet:
        ipv4_address: 172.25.0.101
networks:
  mynet:
    driver: bridge
    ipam:
      config:
      - subnet: 172.25.0.0/24
Run Code Online (Sandbox Code Playgroud)

来源:Docker Compose 中的静态 IP 地址docker-compose.yml

这是docker-compose.yml容器相互ping通的文件示例:

version: '3'
services:
  ubuntu01:
    image: bash
    hostname: ubuntu01
    command: ping -c1 ubuntu02
  ubuntu02:
    image: bash
    hostname: ubuntu02
    command: ping -c1 ubuntu01
Run Code Online (Sandbox Code Playgroud)

运行docker-compose up


Hem*_*ela 5

您可以使用Docker 1.10.0版之后可用的新网络功能

这样,您就可以通过容器的名称连接到容器,分配IP地址和主机名。

创建新网络时,连接到该网络的任何容器都可以通过其名称,ip或主机名访问其他容器。

即:

1)创建网络

$ docker network create --subnet=172.18.0.0/16 mynet123       
Run Code Online (Sandbox Code Playgroud)

2)在网络内部创建容器

$ docker run --net mynet123 -h myhostname --ip 172.18.0.22 -it ubuntu bash
Run Code Online (Sandbox Code Playgroud)

标志:

  • --net 将容器连接到网络
  • --ip 指定IPv4地址
  • -h, --hostname 指定主机名
  • --add-host 向/ etc / hosts添加更多条目