如何保存Docker容器?

时间:2019-06-20 14:03:45

标签: docker

每当我使用

  

docker run -i -t ae8c587afa40 / bin / bash命令

它总是使用新ID创建一个新容器。有人可以帮助我如何保存该特定容器,以便每当我退出该容器时,我的数据都不会丢失吗?

3 个答案:

答案 0 :(得分:0)

您可以使用以下选项在后台运行容器:

docker run -d --hostname=quickstart.cloudera --privileged=true -t -i -p 7180:7180 -p 8888:8888 -p 10000:10000 -p 8020:8020 -p 9092:9092 -p 9093:9093 -p 9393:9393 -p 9394:9394 -p 24042:24042  4239cd2958c6 /usr/bin/docker-quickstart

-d选项将有助于运行容器,即使您从启动容器的终端退出也是如此。将创建新的容器ID。 docker run命令中存在的ID是映像ID。

答案 1 :(得分:0)

从您退出的Docker容器进入stopped状态。 您可以使用docker ps -a查看所有docker容器(正在运行和已停止)。 在此清单中,您将看到您的旧容器。

如果需要重新启动它,可以执行以下操作:

docker start -i <container_id>

这将重新启动已停止的容器。 有关docker start命令的更多详细信息,请参见-https://docs.docker.com/engine/reference/commandline/start/

注意:在Docker容器中存储数据不是一个好主意。您应该使用卷或绑定挂载来保存数据。最好将容器视为短暂且不可变的。

编辑:

要从容器中分离而不退出容器中运行的外壳程序/进程,请使用键序列Control + P Control +Q。 参见https://docs.docker.com/engine/reference/commandline/attach/

答案 2 :(得分:0)

  

有人可以帮助我如何保存该特定容器,以便每当我退出该容器时,我的数据都不会丢失吗?

不应依赖容器的可重用性。与其在容器内手动执行命令,不如构建包含这些命令的自定义映像。这样,您无需担心启动特定的容器,因为该映像的所有容器都将包含在构建映像时定义的命令。

另一个优点是,您可以通过其Dockerfile或将其推送到存储库来轻松共享映像。

我建议您阅读docs来了解docker的概念。