docker打包当前使用的某个容器为镜像,导出,导入

容器打包成镜像

要将正在使用的 Docker 容器打包成镜像,你可以使用 docker commit 命令。这个命令会从运行中的容器创建一个新的镜像。以下是详细步骤:

  1. 查看正在运行的容器: 使用以下命令查看当前正在运行的容器:

    docker ps
    
  2. 找到目标容器的 CONTAINER ID 或 NAME: 在输出中找到你想要打包的容器的 CONTAINER ID 或 NAME。

  3. 创建新镜像: 使用 docker commit 命令将容器打包成镜像:

    docker commit <CONTAINER_ID_OR_NAME> <NEW_IMAGE_NAME>:<TAG>
    

    例如:

    docker commit my_running_container my_new_image:1.0
    

    其中,my_running_container 是容器的 NAME 或 CONTAINER ID,my_new_image 是你想要创建的新镜像的名字,1.0为你的tag

  4. 验证新镜像: 使用以下命令查看新创建的镜像:

    docker images
    

    你应该会看到 my_new_image 列在输出中。

以下是一个完整示例:

# 查看正在运行的容器
docker ps

# 假设你想打包的容器 ID 是 abc123def456
docker commit abc123def456 my_new_image:1.0

# 查看新创建的镜像
docker images

导出镜像

导出

要将 Docker 镜像导出为一个 tar 文件,可以使用 docker save 命令。以下是详细步骤:

  1. 将镜像导出为 tar 文件: 使用 docker save 命令将镜像导出为 tar 文件。假设你的镜像名为 my_new_image 且标签为 1.0

    docker save -o my_new_image.tar my_new_image:1.0
    

    这条命令会将 my_new_image:1.0 镜像导出为 my_new_image.tar 文件。

  2. 验证导出的 tar 文件: 你可以使用以下命令列出 tar 文件的内容以验证导出是否成功:

    tar -tvf my_new_image.tar
    

    这会显示 tar 文件中的内容列表。

  3. 导入镜像到另一台机器: 你可以使用 docker load 命令在另一台机器上导入镜像。假设你已经将 my_new_image.tar 复制到目标机器:

    docker load -i my_new_image.tar
    

    这条命令会从 tar 文件中导入镜像。

以下是一个完整的操作示例:

# 导出镜像
docker save -o my_new_image.tar my_new_image:1.0

# 列出 tar 文件内容验证导出成功
tar -tvf my_new_image.tar

# 在另一台机器上导入镜像
docker load -i my_new_image.tar

进一步压缩导出的镜像使其占用内存更小 

tar -cjf my_new_image.tar.bz2 my_new_image.tar

tar -cvjf my_new_image.tar.bz2 my_new_image.tar

  • -c:创建新的归档文件。

  • -v:详细模式,显示处理的文件。使用这个选项时,tar 会显示处理的每个文件的名称,方便你看到当前归档过程的进展。

  • -j:通过 bzip2 压缩归档文件。

  • -f:指定输出文件的名称

导入镜像

.tar

docker load -i 压缩包.tar

.tar.bz2

解压回tar
tar -xvjf my_new_image.tar.bz2

docker load -i 压缩包.tar

上一篇:OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用


下一篇:使用vue-element 的计数器inputNumber,传第三个参数