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 newechoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新的可正常工作的容器:
buildah from myecho:latest
# buildah from myecho:latest myecho-working-container-2Copy 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/binCopy 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-2Copy 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 containerCopy 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:mynewechoCopy 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 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow