简体   繁体   English

如何在 Docker 桌面 Windows 10 中使用 IP ADDRESS 从主机访问容器(尤其是使用 Z05E406053C418A2DA1)

[英]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.

相关问题 如何在 Windows 10 上通过 DockerNAT IP 地址访问 Docker 容器? - How to access Docker container through DockerNAT IP address on Windows 10? 如何从 Windows 主机获取 Docker 容器的 IP 地址 - How to get a Docker container's IP address from the Windows host 如何从主机访问 Docker 容器的内部 IP 地址? - How to access Docker container's internal IP address from host? Windows上的Docker:如何使用容器IP从主机连接到容器? - Docker on Windows: how to connect to container from host using container IP? Docker-compose:如何使用相同的网络地址从容器和主机访问 Localstack 资源 - Docker-compose: How to access Localstack resources both from container and host, using same network address Windows 10上的docker:容器没有IP地址 - docker on windows 10: container has no ip address 如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows) - How to connect to docker host from container on Windows 10 (Docker for Windows) 如何使用docker-compose为容器设置固定的IP地址? - How to set fixed ip address for container using docker-compose? 如何使用 docker-compose 从 Docker 容器访问主机上的 sqlite 文件? - How to access sqlite file on host machine from a Docker container using docker-compose? 无法从主机docker访问Windows堆栈的容器IP - Can't access container IP from host docker for windows stack
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM