Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 从容器访问本地主机网络而不暴露任何端口?_Docker_Networking_Docker Compose_Localhost_Host - Fatal编程技术网

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

Docker 从容器访问本地主机网络而不暴露任何端口?,docker,networking,docker-compose,localhost,host,Docker,Networking,Docker Compose,Localhost,Host,上下文 我可以访问本地网络中其他计算机的某些本地主机。例如,其中一个名为pandahost,因此如果我在浏览器中浏览pandahost,我可以访问它 目前我一直在与docker合作,我有以下docker-compose.yml: version: "3" services: myproject: build: context: . dockerfile: Dockerfile-for-my-project-environment shm_size

上下文

我可以访问本地网络中其他计算机的某些本地主机。例如,其中一个名为
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
服务容器实例的可能性?

如果您知道容器正在打开的端口,您只需获取使用以下命令的容器:

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\u name
块命名容器,以简化前面的操作。

如果您知道容器正在打开的端口,您可以使用以下命令获取容器的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\u name
块命名容器,以简化前面的操作