容器打包成镜像
要将正在使用的 Docker 容器打包成镜像,你可以使用 docker commit
命令。这个命令会从运行中的容器创建一个新的镜像。以下是详细步骤:
-
查看正在运行的容器: 使用以下命令查看当前正在运行的容器:
docker ps
-
找到目标容器的 CONTAINER ID 或 NAME: 在输出中找到你想要打包的容器的 CONTAINER ID 或 NAME。
-
创建新镜像: 使用
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 -
验证新镜像: 使用以下命令查看新创建的镜像:
docker images
你应该会看到
my_new_image
列在输出中。
以下是一个完整示例:
# 查看正在运行的容器
docker ps
# 假设你想打包的容器 ID 是 abc123def456
docker commit abc123def456 my_new_image:1.0
# 查看新创建的镜像
docker images
导出镜像
导出
要将 Docker 镜像导出为一个 tar 文件,可以使用 docker save
命令。以下是详细步骤:
-
将镜像导出为 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
文件。 -
验证导出的 tar 文件: 你可以使用以下命令列出 tar 文件的内容以验证导出是否成功:
tar -tvf my_new_image.tar
这会显示 tar 文件中的内容列表。
-
导入镜像到另一台机器: 你可以使用
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