编辑
原来是图像的问题,我尝试了另一个,它工作正常
我正在尝试使用Debian 9上的Docker运行Pgadmin 4作为服务器模式。我按照https://hub.docker.com/r/dpage/pgadmin4/上的说明操作我通过以下命令启动它
docker run -p 5050:5050 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=a12345678" -d dpage/pgadmin4
我没有收到任何错误,docker ps
显示如下状态
root@poweredge:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4b11e4bceb7 dpage/pgadmin4 "/bin/bash /entry.sh" 12 seconds ago Up 10 seconds 80/tcp, 443/tcp, 0.0.0.0:5050->5050/tcp upbeat_jackson
但是当我去serverip:5050什么都没有加载。知道问题可能在这里吗?
在执行curl http://localhost:5050
的本地机器上,如果docker实例正在运行,我会得到Connection reset by peer
root@poweredge:~# curl http://localhost:5050
curl: (56) Recv failure: Connection reset by peer
如果我停止Docker实例,我会得到
root@poweredge:~# curl http://localhost:5050
curl: (7) Failed to connect to localhost port 5050: Connection refused
PgAdmin 4 docker容器默认暴露了端口80和443。你可以在这里查看Dockerfile qazxsw poi
因此必须更新命令中的端口映射参数(-p host_port:container_port)
以下是通过http(端口80)访问pgadmin4的更新命令
https://github.com/postgres/pgadmin4/blob/master/pkg/docker/Dockerfile
启动容器后,您应该可以通过docker run -p 5050:80 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=a12345678" -d dpage/pgadmin4
访问它
您是否尝试在虚拟机旁边访问它?如果是,请检查您是否正确设置了虚拟机的端口转发规则:http://localhost:5050