实现“docker 机器重启后容器不见”的步骤

流程图

flowchart TD
    A(创建容器) --> B(停止容器)
    B --> C(删除容器)
    C --> D(保存容器状态到文件)
    D --> E(重启机器)
    E --> F(恢复容器状态)

步骤说明

  1. 创建容器:首先需要创建一个 Docker 容器,使用以下命令:
docker run -d --name <container_name> <image_name> <command>
  • <container_name>: 容器的名称,可以自定义。
  • <image_name>: 需要使用的镜像名称。
  • <command>: 容器启动时需要执行的命令。
  1. 停止容器:在重启机器之前,需要停止容器运行,使用以下命令:
docker stop <container_name>
  • <container_name>: 需要停止的容器名称。
  1. 删除容器:停止容器后,可以选择删除容器,使用以下命令:
docker rm <container_name>
  • <container_name>: 需要删除的容器名称。
  1. 保存容器状态到文件:在重启机器之前,需要将容器的状态保存到文件,使用以下命令:
docker export -o <file_name> <container_name>
  • <file_name>: 保存容器状态的文件名,可以自定义。
  • <container_name>: 需要保存状态的容器名称。
  1. 重启机器:执行机器重启操作。

  2. 恢复容器状态:在机器重启后,需要恢复容器的状态,使用以下命令:

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

代码解释

  1. 创建容器的代码如下:
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 命令,让容器保持运行状态。
  1. 停止容器的代码如下:
docker stop my_container
  • docker stop: 停止一个运行中的容器。
  • my_container: 需要停止的容器名称。
  1. 删除容器的代码如下:
docker rm my_container
  • docker rm: 删除一个已经停止的容器。
  • my_container: 需要删除的容器名称。
  1. 保存容器状态到文件的代码如下:
docker export -o my_container.tar my_container
  • docker export: 将容器状态导出到文件。
  • -o my_container.tar: 指定导出的文件名为 my_container.tar,可以根据需要自定义。
  • my_container: 需要导出状态的容器名称。
  1. 恢复容器状态的代码如下:
docker import my_container.tar
  • docker import: 从文件导入容器状态。
  • my_container.tar: 之前保存容器状态的文件名。

通过以上步骤,可以实现在 Docker 机器重启后容器不会丢失。