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