嗨,我正在使用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:
答案 0 :(得分:0)
该解决方案的选择很少,无论如何,问题都与docker无关。
您应该将其视为在端口8282上的计算机中运行的进程。它只能由主机访问。它没有暴露于世界
最直接的解决方案是使用ssh隧道
答案 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: