实现“docker 机器重启后容器不见”的步骤
流程图
flowchart TD
A(创建容器) --> B(停止容器)
B --> C(删除容器)
C --> D(保存容器状态到文件)
D --> E(重启机器)
E --> F(恢复容器状态)
步骤说明
- 创建容器:首先需要创建一个 Docker 容器,使用以下命令:
docker run -d --name <container_name> <image_name> <command>
<container_name>
: 容器的名称,可以自定义。<image_name>
: 需要使用的镜像名称。<command>
: 容器启动时需要执行的命令。
- 停止容器:在重启机器之前,需要停止容器运行,使用以下命令:
docker stop <container_name>
<container_name>
: 需要停止的容器名称。
- 删除容器:停止容器后,可以选择删除容器,使用以下命令:
docker rm <container_name>
<container_name>
: 需要删除的容器名称。
- 保存容器状态到文件:在重启机器之前,需要将容器的状态保存到文件,使用以下命令:
docker export -o <file_name> <container_name>
<file_name>
: 保存容器状态的文件名,可以自定义。<container_name>
: 需要保存状态的容器名称。
-
重启机器:执行机器重启操作。
-
恢复容器状态:在机器重启后,需要恢复容器的状态,使用以下命令:
docker import <file_name>
<file_name>
: 之前保存容器状态的文件名。
完整代码
# 创建容器
docker run -d --name my_container ubuntu:latest sleep 3600
# 停止容器
docker stop my_container
# 删除容器
docker rm my_container
# 保存容器状态到文件
docker export -o my_container.tar my_container
# 重启机器
# 恢复容器状态
docker import my_container.tar
代码解释
- 创建容器的代码如下:
docker run -d --name my_container ubuntu:latest sleep 3600
docker run
: 创建并运行一个容器。-d
: 后台运行容器。--name my_container
: 指定容器的名称为 my_container,可以根据需要自定义。ubuntu:latest
: 使用名为 ubuntu 的镜像,latest 表示使用最新版本。sleep 3600
: 在容器启动后执行 sleep 命令,让容器保持运行状态。
- 停止容器的代码如下:
docker stop my_container
docker stop
: 停止一个运行中的容器。my_container
: 需要停止的容器名称。
- 删除容器的代码如下:
docker rm my_container
docker rm
: 删除一个已经停止的容器。my_container
: 需要删除的容器名称。
- 保存容器状态到文件的代码如下:
docker export -o my_container.tar my_container
docker export
: 将容器状态导出到文件。-o my_container.tar
: 指定导出的文件名为 my_container.tar,可以根据需要自定义。my_container
: 需要导出状态的容器名称。
- 恢复容器状态的代码如下:
docker import my_container.tar
docker import
: 从文件导入容器状态。my_container.tar
: 之前保存容器状态的文件名。
通过以上步骤,可以实现在 Docker 机器重启后容器不会丢失。