Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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_Docker Compose_Stack - Fatal编程技术网

从docker堆栈模式访问本地网络主机

从docker堆栈模式访问本地网络主机,docker,docker-compose,stack,Docker,Docker Compose,Stack,我需要ftp连接到192.168…网络主机(本地网络),并连接到mongo容器 swarm模式下的Docker阻止网络模式:主机(我看不到容器内的远程ftp主机) Docker stack有关于--发布模式=主机、目标=80、发布=8080的文档,但我不知道如何在Docker compose文件中编写它 我的docker compose.yml文件 version: '3' services: node: image: tgbot-test_node_1 build:

我需要ftp连接到
192.168…
网络主机(本地网络),并连接到mongo容器

swarm模式下的Docker阻止网络模式:主机(我看不到容器内的远程ftp主机)

Docker stack有关于
--发布模式=主机、目标=80、发布=8080
的文档,但我不知道如何在Docker compose文件中编写它

我的
docker compose.yml
文件


version: '3'

services:

  node:
    image: tgbot-test_node_1
    build:
      context: ..
    env_file: .env.test
    network_mode: host
    links:
      - mongo # works
    depends_on:
      - mongo
    deploy:

  mongo:
    image: mongo
    network_mode: "bridge"
    restart: on-failure
    ports:
      - 8080:80 # not works, only expose 27017/tcp
#      not works
#      - mode: host
#        target: 27019
#        published: 27017
    env_file:
      - .env.test
    volumes:
    - db:/data/db
    deploy:
        limits:
          cpus: '0.75'

volumes:
  db:
我需要群集模式来限制资源

如何访问ftp主机?
  • Docker版本19.03.12,内部版本48a66213fe
  • docker compose版本1.26.2,构建eefe0d31
UPD 通过Joel Magnuson的回答,我得到了mongo容器的
端口:27017/tcp
。它不转发带有
堆栈部署的端口,任何-是“80:80”还是“27017”

我设定

得到

docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS               NAMES
ab58c781fdb9        mongo:latest               "docker-entrypoint.s…"   3 seconds ago       Up 2 seconds        27017/tcp           tgbot-test_mongo.1.3i7yps3saqo3nk4xxyk0eka7h
43c0e3cfe960        tgbot-test_node_1:latest   "docker-entrypoint.s…"   3 seconds ago       Up 3 seconds                            tgbot-test_node.1.v23cufsrr683gdg2bicgf80q2


我认为这只是一个配置问题。您提到了“FTP主机”,但没有提到运行FTP服务器。希望下面的内容对您的mongo数据库有所帮助

mongodb
默认情况下将始终在容器内的端口
27017
上运行,除非进行了配置,因此您必须将容器的
27017
端口装载到主机,而不是端口
80

版本:“3”
服务:
节点:
图:tgbot-test_节点_1
环境文件:.env.test#配置为mongodb://mongo:27017/
网络:
-tgbot试验
蒙戈:
图片:mongo
端口:
-27017:27017#仅当您希望在堆栈外部访问它时才需要
#否则,它在堆栈网络中始终作为“mongo”可见
卷数:
-/home/$USER/db:/data/db#可以挂载到主机上
网络:
-tgbot试验
网络:
tgbot测试:
驱动程序:覆盖#建议覆盖网络
#卷数:
#db:#这本身不是持久性的-可以装载到主机
您还可以创建一个外部卷。
docker卷创建--名称tgbot db

。。。
卷数:
tgbot数据库:
外部:正确

您应该能够通过
从主机或远程连接到mongodb实例mongodb://192.160.X.X:27017/
或使用
docker swarm
的DNS名称
mongo
(服务名称)和
mongodb://mongo:27017/

谢谢。是我的错。192.168... 已从节点容器ping。我可以处理覆盖网络。但是为什么
docker ps
不显示转发器端口?通过portainer,我在mongo服务上看到了“27018:27017”,但是
docker ps
没有显示这一点。我认为
docker ps
端口是docker文件的一个工件,暴露了端口,即使在您的情况下
27017
不应该在堆栈网络之外访问<代码>docker service ls
docker stack services
应显示portainer显示的服务端口绑定
27018:27017
docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS               NAMES
ab58c781fdb9        mongo:latest               "docker-entrypoint.s…"   3 seconds ago       Up 2 seconds        27017/tcp           tgbot-test_mongo.1.3i7yps3saqo3nk4xxyk0eka7h
43c0e3cfe960        tgbot-test_node_1:latest   "docker-entrypoint.s…"   3 seconds ago       Up 3 seconds                            tgbot-test_node.1.v23cufsrr683gdg2bicgf80q2