相关疑难解决方法(0)

端口不是所有 Docker 网络都通用的吗?

我创建了两个docker网络

  1. 中国网络

     docker network create --subnet=172.19.0.0/16 chnetwork
    
    Run Code Online (Sandbox Code Playgroud)
  2. 内部网络

     docker network  create --internal --subnet 10.1.1.0/24 internal-network
    
    Run Code Online (Sandbox Code Playgroud)

在创建 docker 容器时我使用chnetwork

docker run -it -d --name containerone -h www.cone.net -v /var/www/html -p 3006:80 --net chnetwork --ip 172.19.0.40 --privileged magento
Run Code Online (Sandbox Code Playgroud)

后来我更改为内部网络并断开容器与chnetwork的连接

docker network connect internal-network containerone
docker network disconnect chnetwork containerone
Run Code Online (Sandbox Code Playgroud)

现在的问题是docker ps命令不显示该容器的端口,我的意思是端口在内部网络中无法访问。

当我将网络更改为chnetwork时,只有docker ps显示端口。我需要做什么才能在所有 Docker 网络中访问端口?

docker docker-container

3
推荐指数
1
解决办法
4181
查看次数

Docker:仅限制到本地主机的传出连接,同时允许所有传入连接

我的 Docker 容器中的某些程序正在向 Google Analytics 和其他跟踪软件发出不需​​要的请求,从而共享我的信息。我想阻止所有这些流量,同时仍然能够从外部访问 Docker。

我尝试添加 --network=host ,这工作正常,只允许从容器内部访问本地主机,但也阻止了所有外部传入连接。

有没有办法限制仅与本地主机的传出连接,同时仍然允许传入的外部连接?我只想在特定的 docker 容器上强制执行此操作,而不是在我的整个系统上执行此操作。

如有任何反馈,我们将不胜感激。

networking firewall iptables docker

3
推荐指数
1
解决办法
3910
查看次数

“此节点不是群集管理器”错误,但我没有使用docker swarm

为了测试我们的托管构建,我试图建立一个与主机和外界隔离的泊坞窗网络。

我有以下内容docker-compose.yml(受此论坛帖子的启发):

version: '3'

services:
  redis:
    image: "redis:2.8.23"
    networks:
      - isolated

  # ... more services (TODO)

networks:
  isolated:
    driver: overlay
    internal: true
Run Code Online (Sandbox Code Playgroud)

当我跑步时docker-compose up -d; 它会创建网络,但随后无法创建容器,并报告以下内容:

错误:该节点不是群集管理器。使用“ docker swarm init”或“ docker swarm join”将此节点连接到swarm,然后重试。

但是我没有使用docker swarm,也不想使用。

如果我services:从文件中删除该节,它将启动网络而不会出现错误。它警告网络未使用(显然)。

如果删除services/redis/networks节,它将正确地调出容器。

我究竟做错了什么?

我找到了这个答案该答案driver: bridge用于网络,但是仍然允许访问主机。


  • Docker版本18.09.3,内部版本774a1f4
  • docker-compose版本1.21.2,内部版本a133471

docker docker-compose

2
推荐指数
1
解决办法
1044
查看次数