如何永久设置docker container hostname / IP

时间:2016-02-17 19:53:18

标签: docker

有没有办法将主机名和IP永久设置为docker中的容器。 我想在一个vm中创建一堆机器(容器),理想情况下使用主机名相互通信。

2 个答案:

答案 0 :(得分:3)

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

允许您按名称连接到容器,分配Ip addrees和主机名。

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

即:

1)创建网络

$ docker network create --subnet=172.18.0.0/16 mynet123       

2)在网络内创建容器

$ docker run --net mynet123 -h myhostname --ip 172.18.0.22 -it ubuntu bash

标志:

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

答案 1 :(得分:1)

您可以使用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

来源:Docker Compose static IP address in 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

运行docker-compose up