Ruby 我可以从集装箱码头内重新启动docker集装箱吗?

Ruby 我可以从集装箱码头内重新启动docker集装箱吗?,ruby,docker,sinatra,Ruby,Docker,Sinatra,我正在容器中制作Sinatra应用程序,但每当我想看到更改时,我都必须分离并运行: docker重启 看看变化 有没有办法从内部重新启动docker以查看更改 我克隆了 构建sudo docker构建-t sinatra. 运行容器sudo docker Run-d-p 4567:4567 sinatra 输入集装箱码头sudo docker exec-it bash 已更改app.rb文件,但在上未更改任何内容, 因此,我从容器中分离并运行docker restart以查看更改。由于我要经常更

我正在容器中制作Sinatra应用程序,但每当我想看到更改时,我都必须分离并运行:

docker重启

看看变化

有没有办法从内部重新启动docker以查看更改

我克隆了

构建
sudo docker构建-t sinatra.

运行容器
sudo docker Run-d-p 4567:4567 sinatra

输入集装箱码头
sudo docker exec-it bash

已更改app.rb文件,但在上未更改任何内容,
因此,我从容器中分离并运行
docker restart
以查看更改。由于我要经常更改app.rb,因此每次更改某些内容时都非常不方便,我必须分离并运行
docker restart

您不必重新启动全docker引擎本身

如果您的Dockerfile从回购中提取更改,并重新进行
捆绑安装
,如中所示,您需要做的全部工作如下:


你用的是什么容器?Dockerfile看起来怎么样?你是如何经营西纳特拉的?你必须给我们一些可以合作的东西;-)如果我想更改ruby文件以创建自己的应用程序,我应该怎么做?我是否应该附加容器终端,然后更改server.rb文件并查看更改?都在容器内terminal@abdelrahmankhaled最好停止、重建和重新启动容器,以确保再现性。如果您直接在docker exec bash会话中进行修改,一旦容器停止并被删除,这些更改将丢失。@abdelrahmankhaled我的答案站得住脚,关于您的Dockerfile:我不能在更改后运行sudo docker commit来保存它吗?@abdelrahmankhaled是的,在docker rm之前,您可以提交并创建一个新映像。另一种方法是通过卷()装载源代码,但Dockerfile不是这样做的。
# on docker server or the same machine
$ sudo docker stop container-id
$ sudo docker pull luisbebop/docker-sinatra-hello-world
$ sudo docker run -d -p 5000:5000 luisbebop/docker-sinatra-hello-world