我使用docker命令运行了一个容器,请问下,我在容器中是否可查看到Host主机的IP地址呢?

我使用docker命令运行了一个容器,

$ docker run -itd -p 8001:801 --name centos7_01 centos:centos7 /bin/bash

1.请问下,我在容器中是否可查看到Host主机的IP地址呢?
2.我是否可把端口映射中主机的端口和容器的端口写成一致呢?

阅读 1.6k
2 个回答

docker 容器的网络模式:bridge、none、container、host

你选择 host 就行了,你用 host,docker 就不会调用 cgroup、namespace 帮你创建一个虚拟网络,而是直接使用 host 网络

具体看官网文档:Docker Doc: Network drivers

1.请问下,我在容器中是否可查看到Host主机的IP地址呢?

如果你的 docker 不那么旧的话,除了把网络设置成 host 模式以外,你还可以使用其他方式来访问到主机的服务。

比如 --add-host host.docker.internal:host-gateway 加上这个参数,你就可以在容器中使用 host.docker.internal 来访问主机。

对于 docker-compose ,你可以在服务下这样配置。

extra_hosts:
    - "host.docker.internal:host-gateway"
2.我是否可把端口映射中主机的端口和容器的端口写成一致呢?

可以,前提是主机端口没有被占用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进