在docker镜像中添加文件

6rqinv9w  于 2023-03-29  发布在  Docker
关注(0)|答案(6)|浏览(515)

我已经创建了一个项目(非常大的项目,需要时间来编译)的docker映像,但我忘记在其中添加文件。
我不必做构建,它只是一个测试文件。
是否可以将此文件添加到我的映像中而不重建所有内容?
谢谢

cbjzeqam

cbjzeqam1#

这里有一个完整的例子来拉一个图像,添加一个本地文件,重新标记图像并将其推回:

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
fbcarpbf

fbcarpbf2#

是的,这是可能的,请执行以下步骤:
1.装载映像并创建容器
1.执行以下命令:
docker cp textFile.txt docker_container_name:/textFile.txt
1.提交容器以构建具有新标记版本或其他名称的新图像;

wmvff8tz

wmvff8tz3#

如上所述,使用容器的docker commit或使用Dockerfile添加镜像。
1.创建一个名为***temp***的目录并导航到其中
1.将docker镜像中要添加的文件***file-to-be-added.extension***移动到新建的***temp***目录中
1.创建包含以下内容的Dockerfile
Dockerfile

FROM your-registry/your-image:tag
COPY file-to-be-added.extension /destination/path/of/file-to-be-added.extension

运行以下命令构建新映像:
docker build -t your-registry/your-image:new-tag .
如果需要,推送图像
docker push your-registry/your-image:new-tag

hwazgwia

hwazgwia4#

你应该尝试使用docker commit
示例:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
还有docker cp,但它只在运行的容器中工作。
希望这能有所帮助!
布尔哈卡

k3fezbri

k3fezbri5#

ADD命令用于将文件/目录复制到Docker镜像中。它可以通过三种方式复制数据:

1. List item Copy files from the local storage to a destination in the Docker image.

2. Copy a tarball from the local storage and extract it automatically inside a destination in the Docker image.

3. Copy files from a URL to a destination inside the Docker image.

来源:https://www.educative.io/edpresso/what-is-the-docker-add-command

0wi1tuuw

0wi1tuuw6#

只需修补你的docker镜像:

export TAG=/your/docker/tag
export FILE=/path/to/your/file/to/add

cd `dirname $FILE`
FILENAME=`basename $FILE` echo "FROM ${TAG}\nADD ${FILENAME} /some_dir/{FILENAME}" | docker build -t ${TAG} -

相关问题