在可能停止的容器上运行docker exec,以便它可以正确执行
我想在一些可能停止的docker集装箱上运行dockerpipe理器。
可能我的意思是它可以运行得很好,但在某些情况下,即服务器重新启动等,我想要运行docker exec
容器将被停止。
有没有什么好的方法来确保docker exec在两种情况下都能正确执行(容器运行,容器停止)。 并在停止的情况下不会返回:
Error response from daemon: Container is not running
从docker exec --help
你可以find,除其他事情
Run a command in a running container
我不知道你想用一个停止的容器做什么?
也许尝试重新启动它?
你知道你可以启动一个重启策略的容器来始终
看文档
https://docs.docker.com/engine/reference/run/
提取
Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container.
您不能运行docker exec
对已停止的容器。 从docker help exec
:
$ docker help exec
用法:docker exec [OPTIONS] CONTAINER COMMAND [ARG …]
在正在运行的容器中运行命令
所以如果你的目标容器因为某种原因被停止了,你需要通过docker start <your_container>
来启动它,然后才能执行docker exec ....
顺便说--restart
, --restart
docker run
命令有一个叫做--restart
的选项,可以让你指定容器的重启策略,你可以在docker run –restart docs中find更多的细节。 有4个政策可用:
-
否 :不要在退出时自动重启容器。 这是默认的。
-
on-failure [:max-retries] :仅在容器以非零退出状态退出时重新启动。 (可选)限制Docker守护程序尝试重新启动的次数。
-
始终 :始终重新启动容器,无论退出状态如何。 当你总是指定的时候,Docker守护进程会尝试无限期地重启容器。 无论容器的当前状态如何,容器也将始终在守护进程启动时启动。
- 除非停止 :始终重新启动容器,不pipe退出状态如何,但是如果容器之前已经处于停止状态,则不要在守护进程启动时启动它。
默认情况下no
,您可以根据您的要求select另一个。 例如,如果您selectnon-stopped
,则在服务器重新启动后,docker守护程序准备就绪后,您的容器将自动重新启动。
- Docker:更新映像和registry
- 该容器应该运行一个Web服务器,该服务器在主机系统上(不在Docker容器内部)从/ var / www / website上提供静态页面,
- 在Docker中,如何在容器之间共享文件,然后将它们保存到图像中?
- 使用Vagrant和Docker提供程序构buildDockerfile:多行命令链接返回错误
- 如何在多租户环境中将Hadoop中的各个应用程序进行dockerize?
- 了解docker中的覆盖networking
- 在Azure上托pipeDocker的WordPress
- 将开发或debugging工具图层添加到现有的Docker容器
- 使用cgroup_new_cgroup创buildcgroup时出现错误50007