20.4. 使用 buildah copy 和 buildah config 修改容器
使用 buildah copy
命令在不挂载的情况下将文件复制到容器。然后,您可以使用 buildah config
命令配置容器,以运行默认创建的脚本。
先决条件
-
container-tools
模块已安装。 - 使用 Containerfile 中的指令构建的镜像。详情请参阅 使用 Buildah 从 Containerfile 构建镜像 一节。
流程
创建一个名为
newecho
的脚本,并使其可执行:cat newecho echo "I changed this container" chmod 755 newecho
# cat newecho echo "I changed this container" # chmod 755 newecho
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新的可正常工作的容器:
buildah from myecho:latest
# buildah from myecho:latest myecho-working-container-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 newecho 脚本复制到容器中的
/usr/local/bin
目录中:buildah copy myecho-working-container-2 newecho /usr/local/bin
# buildah copy myecho-working-container-2 newecho /usr/local/bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改配置以使用
newecho
脚本作为新入口点:buildah config --entrypoint "/bin/sh -c /usr/local/bin/newecho" myecho-working-container-2
# buildah config --entrypoint "/bin/sh -c /usr/local/bin/newecho" myecho-working-container-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行
myecho-working-container-2
容器,其触发newecho
脚本执行:buildah run myecho-working-container-2 -- sh -c '/usr/local/bin/newecho'
# buildah run myecho-working-container-2 -- sh -c '/usr/local/bin/newecho' I changed this container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
myecho-working-container-2
容器提交成名为mynewecho
的新镜像:buildah commit myecho-working-container-2 containers-storage:mynewecho
# buildah commit myecho-working-container-2 containers-storage:mynewecho
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
列出本地存储中的所有镜像:
buildah images
# buildah images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/mynewecho latest fa2091a7d8b6 8 seconds ago 234 MB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow