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