是否有可能访问正在运行的docker集装箱上的条目命令bash?

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

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

... 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 

但是,我不能停止或重新启动我的服务器。 有没有办法使用启动的命令访问SSH? (例如查看服务器日志,或停止并重新启动它)。

也许我在这里采取了错误的path,因为进入命令不应该被停止? 所以在这种情况下,任何人都有一个解决scheme,可以让我启动我的服务器,并以更灵活的方式控制它?

最佳实践说,你应该看到容器作为你的服务器。 如果你想停止它,停止容器( docker stop my-container ),如果你想重新启动它,重新启动容器( docker restart my-container )。 你的服务器应该login到stdout ,所以你可以看到日志使用docker logs -f my-container 。 所以,你是对的,命令不应该被阻止,因为它会阻止容器。