Docker命令-容器的root文件系统(rootfs)命令
浅小兮Docker commit 命令
docker commit
命令用于将容器的当前状态保存为一个新的 Docker 镜像。
docker commit
命令通常用于创建镜像来保存容器的状态,以便在将来可以重用或分发该镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-
-a :提交的镜像作者。
-
-c :使用 Dockerfile 指令来创建镜像。
-
-m :提交时的说明文字。
-
-p :提交镜像前暂停容器(默认为 true)。
将容器保存为新镜像:
docker commit my_container my_new_image
将名为 my_container 的容器保存为一个名为 my_new_image 的新镜像。
指定标签:
docker commit my_container my_new_image:latest
将容器保存为带有 latest 标签的镜像。
添加作者信息和提交信息:
docker commit -a “John Doe” -m “Added new features” my_container my_new_image
将容器保存为新镜像,并添加作者信息和提交信息。
在不暂停容器的情况下提交镜像:
docker commit --pause=false my_container my_new_image
在不暂停容器的情况下,将其保存为新镜像。
实例
启动一个容器:
docker run -d -it --name my_container ubuntu bash
进行一些更改:
1 | docker exec my_container apt-get update |
提交容器为新镜像:
docker commit -a “Your Name” -m “Installed nginx” my_container my_new_image
查看新镜像:
docker images
常用场景
-
保存工作进度: 在开发或测试过程中,将容器的当前状态保存为镜像,以便稍后可以恢复。
-
创建基础镜像: 为特定应用程序或环境配置创建自定义基础镜像。
-
分发配置: 将特定配置或应用程序状态保存为镜像,以便分发给其他团队成员或在不同环境中使用。
docker commit
命令是一个强大的工具,允许用户将容器的当前状态保存为新的 Docker 镜像。通过使用该命令,用户可以创建自定义镜像,以便在将来重用或分发。添加适当的作者和提交信息,有助于跟踪镜像的历史和变化。
Docker cp 命令
docker cp
命令用于在 Docker 容器和宿主机之间复制文件或目录。
docker cp
命令支持从容器到宿主机,或从宿主机到容器的文件复制操作。
语法
1 | docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH |
-
SRC_PATH
: 源路径(可以是容器内的路径或宿主机的路径)。 -
CONTAINER
: 容器的名称或 ID。 -
DEST_PATH
: 目标路径(可以是容器内的路径或宿主机的路径)。
从容器复制文件到宿主机
docker cp my_container:/path/in/container /path/on/host
将容器 my_container 内的 /path/in/container 文件或目录复制到宿主机的 /path/on/host。
从宿主机复制文件到容器
docker cp /path/on/host my_container:/path/in/container
将宿主机上的 /path/on/host 文件或目录复制到容器 my_container 内的 /path/in/container。
从容器复制目录到宿主机
docker cp my_container:/path/in/container /path/on/host
将容器内的 /path/in/container 目录及其内容复制到宿主机的 /path/on/host。
从宿主机复制目录到容器
docker cp /path/on/host my_container:/path/in/container
将宿主机上的 /path/on/host 目录及其内容复制到容器 my_container 内的 /path/in/container。
实例
容器复制文件到宿主机
启动一个容器并创建一个文件:
docker run -d --name my_container ubuntu bash -c “echo ‘Hello, Docker!’ > /hello.txt”
从容器复制文件到宿主机:
docker cp my_container:/hello.txt ./hello.txt
将容器内的 /hello.txt 文件复制到当前宿主机目录下。
查看复制的文件内容:
cat hello.txt
输出:
Hello, Docker!
从宿主机复制文件到容器
复制一个文件到容器:
docker cp ./hello.txt my_container:/hello.txt
将宿主机上的 hello.txt 文件复制到容器内的 /hello.txt。
进入容器查看文件内容:
docker exec -it my_container cat /hello.txt
输出:
Hello, Docker!
注意事项
-
docker cp
命令不会修改源文件或目录,它仅进行复制操作。 -
目标路径必须是有效的路径,且宿主机或容器中应有足够的权限进行写入操作。
-
在处理大文件或大目录时,复制操作可能需要一些时间。
docker cp
命令是 Docker 提供的一个有用工具,用于在容器和宿主机之间复制文件或目录。这个命令适用于备份、配置更新、日志收集等操作,帮助用户方便地管理和操作容器中的文件。
Docker diff 命令
docker diff
命令用于显示 Docker 容器文件系统的变更。它显示自容器创建以来,文件系统中发生的所有修改,包括添加、删除和修改的文件或目录。
docker diff
命令对于调试和理解容器的文件系统变化非常有用。
语法
docker diff CONTAINER
-
CONTAINER
: 容器的名称或 ID。
docker diff
命令的输出包含以下三种类型的变更:
-
A
: 表示新增的文件或目录。 -
D
: 表示删除的文件或目录。 -
C
: 表示修改过的文件或目录。
查看容器的文件系统变更
docker diff my_container
显示名为 my_container 的容器的文件系统变更。
实例
启动一个容器并修改文件系统:
docker run -d --name my_container ubuntu bash -c “echo ‘Hello, Docker!’ > /hello.txt && sleep 3600”
查看容器的文件系统变更:
docker diff my_container
输出示例:
A /hello.txt
此输出表示 /hello.txt 文件在容器文件系统中被新增了。
删除容器中的文件:
docker exec my_container rm /hello.txt
再次查看容器的文件系统变更:
docker diff my_container
输出示例:
D /hello.txt
此输出表示 /hello.txt 文件在容器文件系统中被删除了。
注意事项
-
docker diff
命令仅显示容器的文件系统变化,不显示容器内的其他状态信息(如运行的进程)。 -
输出信息可能会因容器内文件系统的变化而不断变化,因此应在需要时及时查看。
docker diff
命令是一个强大的工具,用于显示 Docker 容器文件系统的变化。通过使用该命令,用户可以轻松查看和了解容器自创建以来所做的文件系统更改,有助于调试、审计和分析容器的行为。