我是docker的新手,我试图运行linuxconfig/lemp-php7
图像。一切正常,我可以访问容器上安装的nginx Web服务器。要运行此图像,我使用了以下命令:
sudo docker run linuxconfig/lemp-php7
当我尝试使用以下命令运行映像以通过bash访问容器时,我无法连接到nginx,我收到了connection refused
错误消息。命令:sudo docker run -ti linuxconfig/lemp-php7 bash
我试了好几次,所以我很确定这不是什么巧合。
为什么会这样?这是特定于此特定图像的问题还是一般问题。如何才能访问容器的shell并同时访问Web服务器?
我真的很想了解这种行为,以提高我对docker的一般理解。
答案 0 :(得分:3)
docker run
运行指定的命令而不是该容器通常运行的内容。在您的情况下,它appears to be supervisord
,可能会运行Web服务器。所以你要防止这种情况发生。
我首选的方法(除非我尝试调试容器甚至无法正常启动的情况),在正常运行容器后执行以下:
docker exec -i -t $CONTAINER_ID /bin/bash