微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker – 如何使用container-id重启容器?

我使用命令创建了一个容器

docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file"

现在我看到容器已退出

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
9e5017aef3f9        ubuntu              "/bin/bash -c 'echo '"   38 seconds ago      Exited (0) 36 seconds ago                       elegant_euler

问题:如何使用其容器ID重新启动并进入此容器的交互模式?
我不能使用docker run -it< image_name>因为这需要图像名称而不是容器ID.
我尝试使用docker attach,但我认为这只适用于运行容器.
我还不想提交这个容器,如何使用它的container-id重新启动并进入这个容器的交互模式?
编辑:我可以使用docker start {container-id}进入其他容器,然后运行docker attach {container-id}.我想知道是否有一些特殊的东西,我创建容器的方式会导致这种行为.我刚开始使用码头工具,所以如果我错过了一些基本位,请指引我正确的方向.

最佳答案
容器在完成其命令时退出.所以容器开始了

docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file"

命令echo完成后立即退出.在这种情况下,重启该容器没有意义.

如果您以分离模式运行新容器,您将能够将其保持活动状态并在第二次附加它.

所以,在你的情况下,你应该在分离模式下运行一个新的容器运行像/ bin / bash这样的命令,然后你可以运行echo并附加它

docker run -d -ti ubuntu /bin/bash
docker exec -ti 

容器将保持活动状态,因此您可以在其上执行更多命令,例如
docker exec -ti / bin / bash -c“cat / tmp / cool-file”

或运行一个新的/ bin / bash来“附加”你的容器,并作为命令提示符在其中工作

docker exec -ti 

您可以成功停止/启动/重新启动此容器

docker stop 

要么

docker restart 

提醒一下,当您重新启动容器时,它会再次执行其原始命令.所以,如果你能够重新启动你的用例的容器(但你不能)它会再次运行/ bin / bash -c“cat / tmp / cool-file”

重新启动使用命令/ bin / bash运行的容器,它将在重新启动时再次运行相同的命令.

重启现有容器时,通常无法将命令更改为RUN;要做到这一点,你可以尝试一些技巧,如How to start a stopped docker container with a different command所示.

原文地址:https://www.jb51.cc/docker/436199.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐