Docker无法连接到管理员端口

时间:2018-07-26 08:52:11

标签: postgresql docker docker-compose adminer

嗨,我正在使用docker-compose文件来与postgresql和adminer(数据库接口)一起使用。

我按照docker hub上postgres映像上的说明进行了docker stack deploy -c docker-compose.yml postgres_test,但是当我尝试连接到45.77.46.240(我的主机IP):8282(管理员端口)时从另一台计算机发出的响应是“ ERR_CONNECTION_TIMED_OUT”

我想知道为什么我可以在可视化器的8080端口上连接它,但不能在管理器上工作?

这是我的docker-compose.yml

version: "3"
services:
adminer:
   image: adminer
   restart: always
   ports:
     - "8282:8282"
db:
   image: postgres
   networks:
     - webnet
   environment:
     POSTGRES_PASSWORD: 123
     POSTGRES_USER: postgres
     POSTGRES_DB: real_estate
   volumes:
     - ./init.sql:/docker-entrypoint-initdb.d/init.sql
web:
   # replace username/repo:tag with your name and image details
   image: my_user_name/test_image:image1
   ports:
     - "8081:8081"
   networks:
     - webnet
   environment:
     DB_HOST: db
visualizer:
   image: dockersamples/visualizer:stable
   ports:
     - "8080:8080"
   volumes:
     - "/var/run/docker.sock:/var/run/docker.sock"
   deploy:
      placement:
        constraints: [node.role == manager]
   networks:
     - webnet
networks:
  webnet:

2 个答案:

答案 0 :(得分:0)

该解决方案的选择很少,无论如何,问题都与docker无关。

您应该将其视为在端口8282上的计算机中运行的进程。它只能由主机访问。它没有暴露于世界

最直接的解决方案是使用ssh隧道

https://www.ssh.com/ssh/tunneling/example

答案 1 :(得分:0)

由于端口问题,这不起作用。您已将其配置为 8282。管理员默认端口为 8080,您无法更改管理员默认端口。因此,请尝试使用以下代码。

version: "3"
services:
adminer:
   image: adminer
   restart: always
   ports:
     - "8282:8080"
db:
   image: postgres
   networks:
     - webnet
   environment:
     POSTGRES_PASSWORD: 123
     POSTGRES_USER: postgres
     POSTGRES_DB: real_estate
   volumes:
     - ./init.sql:/docker-entrypoint-initdb.d/init.sql
web:
   # replace username/repo:tag with your name and image details
   image: my_user_name/test_image:image1
   ports:
     - "8081:8081"
   networks:
     - webnet
   environment:
     DB_HOST: db
visualizer:
   image: dockersamples/visualizer:stable
   ports:
     - "8080:8080"
   volumes:
     - "/var/run/docker.sock:/var/run/docker.sock"
   deploy:
      placement:
        constraints: [node.role == manager]
   networks:
     - webnet
networks:
  webnet: