因此,我在远程服务器(例如51.15.235.12:5000 )中运行私有注册表,并在本地将docker镜像推送到该注册表。我尝试使用主机IP和network_mode主机启动一个容器,但容器的ip类似于172.17.0.1。
这是docker-compose:
version: '2'
services:
rsi:
container_name: rsi
image: localhost:5000/rsi:1.0
restart: on-failure:10
depends_on:
- geoserver
# - rsi-db
network_mode: host
# Geoserver
geoserver:
container_name: geoserver
restart: always
image: localhost:5000/geoserver:1.0
network_mode: host
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
environment:
- GEOSERVER_LOG_LOCATION=/opt/geoserver/data_dir/logs/geoserver.log这里的本地主机IP是51.15.235.12,但是当我进入rsi容器时,我在运行ifconfig时得到以下内容
docker0 Link encap:Ethernet HWaddr 02:42:E5:09:B4:E9
inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0为什么没有将docker0接口IP设置为本地主机IP,即51.15.235.12
发布于 2018-08-04 17:51:26
当您使用--net host时,您将共享主机的整个网络设置及其所有接口。容器没有自己的IP地址。您处于完全相同的网络环境中,就像您在主机上运行Apache一样:容器/进程没有自己的IP地址,它只是监听主机上的某个端口。
Docker守护进程创建一个docker0接口作为其内部网络设置的一部分。由于您使用的是主机网络堆栈,因此您将在接口列表中看到它。但这不是“容器的IP”。localhost (总是127.0.0.1,这很神奇)将指向主机系统。
https://stackoverflow.com/questions/51683839
复制相似问题