可以在运行的docker容器上访问entry命令bash吗?

可以在运行的docker容器上访问entry命令bash吗?,docker,docker-compose,Docker,Docker Compose,我有一个节点docker容器,在其中运行开发服务器 在我的docker-compose.yml文件中,entry命令是: ... command: start-dev-server ... 其中start dev server指向在供应商安装后启动服务器的脚本: // /usr/local/bin/start-dev-server #!/usr/bin/env bash # install node modules if missing npm i # start the dev serve

我有一个节点docker容器,在其中运行开发服务器

在我的docker-compose.yml文件中,entry命令是:

...
command: start-dev-server
...
其中start dev server指向在供应商安装后启动服务器的脚本:

// /usr/local/bin/start-dev-server
#!/usr/bin/env bash

# install node modules if missing
npm i
# start the dev server
npm run start
因此,当我启动容器时,服务器也将启动

我知道我可以通过以下命令访问bash中的容器:

docker exec -it my-container bash
但在那里,我无法停止或重新启动我的服务器。 有没有办法用started命令访问ssh?(例如,查看服务器日志,或停止并重新启动它)


也许我走错了路,因为entry命令不应该被停止?因此,在这种情况下,是否有人能提供一种解决方案,允许我启动服务器并以更灵活的方式对其进行控制?

说明您应该将容器视为您的服务器。如果要停止它,请停止容器(
docker stop my container
),如果要重新启动它,请重新启动容器(
docker restart my container
)。您的服务器应该登录到
stdout
,这样您就可以使用
docker logs-f my container
查看日志。因此,您是对的,该命令不应该停止,因为它将停止容器。

最佳实践表明,您应该将容器视为您的服务器。如果要停止,请停止容器;如果要重新启动,请重新启动容器。您的服务器应该登录到
stdout
,这样您就可以使用
docker logs my container
查看日志。因此,您是对的,该命令不应该停止,因为它将停止容器。为了提出一个解决方案,你说“以更灵活的方式控制它”是什么意思?实际上,docker logs-f my container命令完全是我想要的,事实上,要停止并重新启动服务器,我只需要使用docker命令。我刚刚错过了logs命令的-f选项,它允许我实时查看日志!谢谢你,先生,你可以回答你的评论,我会接受你的回答!谢谢我添加了docker命令和docker最佳实践的链接