【发布时间】:2019-01-19 18:40:41
【问题描述】:
我有一个使用 docker-compose 在主机上运行创建的 docker 容器。
获取的docker容器有自己的网络:
docker exec -it containername /bin/bash
root@4913fd78f383:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
155: eth0@if156: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.20.0.2/16 brd 172.20.255.255 scope global eth0
valid_lft forever preferred_lft forever
所以,容器占用了宿主机中的IP 172.20.0.2/16。
我的问题是这样我的主机无法连接到网络中真正的 172.20.x.y 主机,主机连接的地方。
所以,容器(有自己的 ip)隐藏了其他真实地址。
我需要更改现有容器的 IP 地址,可能不需要删除/重新创建它。
我已经使用 docker compose 创建了我的容器,所以我使用这些命令来运行/停止容器:
docker start containername
docker stop containername
提前致谢。
【问题讨论】:
标签: docker docker-compose docker-networking docker-network