要将 Docker 容器打包并分享或迁移,通常需要将容器转换为镜像,再将镜像保存为文件(如 .tar)。以下是详细步骤:

方法 1:通过容器创建镜像并导出

  1. 找到容器ID

    docker ps -a

找到要打包的容器的 CONTAINER ID

  1. 将容器提交为新的镜像

    docker commit :

示例:

docker commit abc123 my-app:v1
  1. 将镜像导出为 .tar 文件

    docker save -o .tar :

示例:

docker save -o my-app-v1.tar my-app:v1
  1. 在其他机器上加载镜像

    docker load -i my-app-v1.tar


示例总结

以下是一个完整的示例,展示了如何从容器创建镜像并导出为文件:

# 查看所有容器
docker ps -a

# 从容器创建镜像
docker commit -m "Create myapp image from container" -a "Your Name" abc123 myapp:v1

# 查看新创建的镜像
docker images

# 导出镜像为文件
docker save -o myapp_v1.tar myapp:v1

方法 2:通过 Dockerfile 构建镜像

如果你有 Dockerfile,推荐直接构建镜像(更规范且可重复):

docker build -t <IMAGE_NAME>:<TAG> .

补充说明

  • 导出容器文件系统(不推荐)

    如果仅需导出容器文件系统(不包含镜像层历史),可以用:

    docker export <CONTAINER_ID> > my-container.tar
    

    导入时用:

    docker import my-container.tar my-image:v1
    
  • 推送到镜像仓库(推荐)

    更标准的做法是将镜像推送到 Docker Hub 或私有仓库:

    docker tag my-app:v1 username/my-app:v1
    docker push username/my-app:v1
    

关键区别

操作 适用场景 保留元数据(如历史层)
docker commit 从容器修改创建新镜像
docker save 导出完整镜像(含所有层)
docker export 导出容器当前文件系统快照

建议

  • 优先使用 Dockerfile 构建镜像,确保环境可重复。
  • docker commit 适合临时调试,但不利于版本控制和维护。
Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2026-01-12 10:39:38

results matching ""

    No results matching ""