[英]How to access container from host using IP ADDRESS in Docker Desktop Windows 10 (esspecially with use docker compose)?
What should I do to access container via IP ADDRESS not PORT?我应该怎么做才能通过 IP ADDRESS 而不是 PORT 访问容器? Can I define any kind of network or bridge?我可以定义任何类型的网络或网桥吗?
I am using standard Docker Desktop with WSL2 on Windows 10. This required to expose containers as machines not as ports.我在 Windows 10 上使用带有 WSL2 的标准 Docker 桌面。这需要将容器公开为机器而不是端口。
I try this but is not works:)我试试这个但不起作用:)
This compose is very complex but you can use pure Ubuntu image to test it - not matter what image.这个组合非常复杂,但你可以使用纯 Ubuntu 图像来测试它——不管是什么图像。
networks:
cassandra:
volumes:
cassandra-data-1:
driver: local
cassandra-log-1:
driver: local
cassandra-data-2:
driver: local
cassandra-log-2:
driver: local
cassandra-data-3:
driver: local
cassandra-log-3:
driver: local
cassandra-data-4:
driver: local
cassandra-log-4:
driver: local
services:
cassandra-1:
image: cassandra:4.0.5
container_name: cassandra-1
hostname: dc-cassandra-1
mem_limit: 2g
networks:
- cassandra
environment: &cassandra_environment
MAX_HEAP_SIZE: 1G
HEAP_NEWSIZE: 100M
CASSANDRA_SEEDS: dc-cassandra-1,dc-cassandra-2,dc-cassandra-3,dc-cassandra-4
CASSANDRA_CLUSTER_NAME: dptr-v2
CASSANDRA_DC: dptr-v2-dc0
CASSANDRA_RACK: dptr-v2-r0
volumes:
- cassandra-data-1:/var/lib/cassandra
- cassandra-log-1:/var/log/cassandra
cassandra-2:
image: cassandra:4.0.5
container_name: cassandra-2
hostname: dc-cassandra-2
mem_limit: 2g
networks:
- cassandra
environment: *cassandra_environment
volumes:
- cassandra-data-2:/var/lib/cassandra
- cassandra-log-2:/var/log/cassandra
cassandra-3:
image: cassandra:4.0.5
container_name: cassandra-3
hostname: dc-cassandra-3
mem_limit: 2g
networks:
- cassandra
environment: *cassandra_environment
volumes:
- cassandra-data-3:/var/lib/cassandra
- cassandra-log-3:/var/log/cassandra
cassandra-4:
image: cassandra:4.0.5
container_name: cassandra-4
hostname: dc-cassandra-4
mem_limit: 2g
networks:
- cassandra
environment: *cassandra_environment
volumes:
- cassandra-data-4:/var/lib/cassandra
- cassandra-log-4:/var/log/cassandra
You can't access Linux containers by IP address from a Windows host.您无法通过 Windows 主机的 IP 地址访问 Linux 容器。 (...or on a MacOS host, or if you're using a VM-based Docker solution, or if the client isn't on the same host as the containers, or...) Access the containers through their published ports:
instead. (...或者在 MacOS 主机上,或者如果您使用基于 VM 的 Docker 解决方案,或者如果客户端与容器不在同一主机上,或者...)通过其发布的ports:
访问容器ports:
相反。 There's no need to ever look up a container's Docker-internal IP address.无需查找容器的 Docker 内部 IP 地址。
The Docker Desktop documentation notes, under "Known limitations for all platforms": Docker 桌面文档说明,在“所有平台的已知限制”下:
Per-container IP addressing is not possible : The docker bridge network is not reachable from the host.每个容器的 IP 寻址是不可能的:docker 桥接网络无法从主机访问。 However if you are a Windows user, it works with Windows containers.但是,如果您是 Windows 用户,则它适用于 Windows 容器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.