如何重新启动已停止的Docker容器

aelbi1ox  于 2022-12-03  发布在  Docker
关注(0)|答案(5)|浏览(1658)

我使用以下命令从映像启动一个Docker容器:

$ docker run -d myimage /bin/bash -c "mycommand"

"mycommand"完成时,容器被停止(我想它被停止了),但它没有被删除,因为我可以用下面的命令看到它:

$ docker ps -a

有没有办法用同样的参数restart这个容器并保留mycommand生成的数据呢?

3okqufwl

3okqufwl1#

是的,当初始命令完成其执行时,容器停止。
可以使用以下命令启动已停止的容器:
docker start container_name
如果要查看命令的输出,则应添加-ai选项:
docker start -ai container_name
PS.有一个docker restart container_name,但那是用来重新启动一个正在运行的容器的-我相信那不是你的情况。

u3r8eeie

u3r8eeie2#

首先,$ docker ps -a显示了所有容器(正在运行的容器和已停止的容器),这就是为什么您没有看到已停止的容器被列出的原因。
其次,你可以很容易地启动一个停止了运行的容器:

$ docker start container_name

启动容器后,可以通过以下方式运行命令:

$ docker exec -it container_name bash -c "mycommand"

你在容器中创建的内容只要存在就会一直保留在容器中。如果你想在容器被移除时也保留数据,你可以使用volume

ycl3bljg

ycl3bljg3#

应该是

$ docker restart container_id # OR
$ docker restart container_name
dvtswwa3

dvtswwa34#

从上图中,我们可以看到一个容器处于启动状态,另一个容器的状态为“已退出”。
当一个容器退出时,我们仍然可以启动它备份,因为容器停止并不意味着它就像死了一样,或者不能再使用,我们可以很容易地停止它,然后在将来的某个时候再次启动它。要启动一个容器备份,我们可以获取它的ID,然后执行docker start并粘贴ID end。

sudo Docker启动容器标识

上图中已退出容器的命令将为。

须道码头启动-a bba 606 a95392

输出:

**顺便说一句:**在重新启动容器时,我们不能替换默认命令,一旦您使用为容器设置的默认命令启动,例如,如果我们启动容器覆盖默认命令,让我们看看会发生什么:

Docker认为我们试图同时启动和连接多个容器。

因此,当我们启动一个容器并让它退出时,我们可以再次启动它,这将重新发出首次创建容器时使用的默认命令。这是Docker容器生命周期的一部分。

p5cysglq

p5cysglq5#

不幸的是,如果您重新启动虚拟机/系统并显示

mysql-tls:5.7       "docker-entrypoint.s…"   18 hours ago   Exited (255) 44 seconds ago

答:
启动容器

Docker启动mysql

Docker启动您的容器名称

相关问题