在 docker 镜像中添加文件

Nga*_* Be 14 docker

我已经创建了一个项目的 docker 映像(非常大的项目,需要时间来编译),但我忘记在其中添加一个文件。

我与构建无关,它只是一个测试文件。

是否可以将此文件添加到我的图像中而不重建所有内容?

谢谢

Tam*_*lyn 9

这是一个完整的示例,用于拉取图像、向其中添加本地文件、重新标记图像并将其推回:

export IMAGE_URL=example.com/your_image:your_tag
docker pull $IMAGE_URL
docker create --name temp_container $IMAGE_URL
docker cp /host/path/to/file temp_container:/container/path/to/file
docker commit temp_container $IMAGE_URL
docker push $IMAGE_URL
Run Code Online (Sandbox Code Playgroud)

  • 这是迄今为止最简洁的答案。是的 - 它涵盖了与之前的答案大部分相同的内容,但并不假设我对 docker cli 拥有专家掌握。例如“安装你的容器” (2认同)

小智 8

是的,有可能,请执行以下步骤:

  1. 挂载镜像并制作容器
  2. 执行命令:

    docker cp textFile.txt docker_container_name:/textFile.txt

  3. 提交容器以使用新标签版本或其他名称构建新镜像;

  • ``` $ 挂载镜像并创建容器 bash: 未找到命令:挂载 ``` (7认同)

gag*_*gan 6

如上所述,使用容器的 docker commit 或使用 Dockerfile 添加映像。

  1. 创建一个目录,例如temp并导航到该目录
  2. 将要添加到 docker 映像的文件file-to-be-added.extension移动到新创建的临时目录中
  3. 创建一个包含以下内容的 Dockerfile

Dockerfile

FROM your-registry/your-image:tag
COPY file-to-be-added.extension /destination/path/of/file-to-be-added.extension
Run Code Online (Sandbox Code Playgroud)

运行以下命令来构建新映像:

docker build -t your-registry/your-image:new-tag 。

如果需要,推送图像

docker Push 你的注册表/你的镜像:新标签