繁体   English   中英

从容器访问本地主机网络而不暴露任何端口?

[英]Access local host network from container without exposing any port?

语境

我可以访问本地网络中其他计算机的一些本地主机。 例如,其中之一叫做pandahost ,所以如果我在浏览器中浏览pandahost ,我可以访问它。

目前我一直在使用 docker,我有以下 Docker-compose.yml:

version: "3"
services: 
  myproject: 
    build: 
      context: .
      dockerfile: Dockerfile-for-my-project-environment
    shm_size: 2gb
    volumes: 
      - "D:/project/myproject1/folder:/myproject1"
      - "D:/project/myproject2:/myproject2"


我使用这个 docker-compose 文件来运行服务myproject的多个实例,所以我不想暴露任何端口以避免端口冲突。

到目前为止,一切对我来说都很好,除了我无法从服务容器连接到pandahost

问题

有没有办法将服务myproject容器连接到pandahost而不会暴露任何端口并且不会破坏拥有多个myproject服务容器实例的可能性?

如果您知道容器打开的端口,您可以使用以下命令简单地获取容器的 IP 地址:

alias docker_ip_address="docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'"

docker_ip_address $container_ID

或更简单地说

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container_ID

在这种情况下,我建议您使用 docker-compose.yml 中的container_name块命名您的容器,以简化前面的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM