点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。
在 Docker 中,使用 docker container cp 命令在容器和本地文件系统之间复制文件或目录。
语法如下:
用法: docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH 在容器和本地文件系统之间复制文件/文件夹 使用 “-” 作为源,从 stdin 读取 tar 压缩文件并将其提取到容器中的目标目录。 使用 “-” 作为目标,可将容器源的 tar 压缩包流式传输到 stdout。 别名: docker container cp、docker cp 选项 -a, --archive 存档模式(复制所有 uid/gid 信息) -L, --follow-link 始终跟随 SRC_PATH 中的符号链接 -q,--quiet 在复制过程中抑制进度输出。如果未连接终端,进度输出会自动被抑制。
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH_LOCAL
参数说明:
CONTAINER 是容器的名称或 ID。
SRC_PATH 是容器内的源文件或目录路径。
DEST_PATH_LOCAL 是本地目标文件或目录路径。
例如:
# 查看运行中的容器 root@hxvm2:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7bfac83b61a3 redis "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis 41a203fa62c5 nginx:latest "/docker-entrypoint.…" 20 hours ago Up 20 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp eager_taussig # 从 nginx 容器中复制文件到宿主机 root@hxvm2:~# docker container cp 41a203fa62c5:/usr/share/nginx/html/index.html ./html/ Successfully copied 2.56kB to /root/html/ # 查看复制结果 root@hxvm2:~# ll ./html/ total 12 drwxr-xr-x 2 root root 4096 8月 23 13:58 ./ drwx------ 7 root root 4096 8月 23 13:57 ../ -rw-r--r-- 1 root root 615 8月 12 22:21 index.html
上面命令将 ID 为 41a203fa62c5 的容器中的 /usr/share/nginx/html 目录下 index.html 文件复制到本地当前目录下的 html 目录中。
docker container cp [OPTIONS] SRC_PATH_LOCAL CONTAINER:DEST_PATH
参数说明:
SRC_PATH_LOCAL 是本地源文件或目录路径。
CONTAINER 是容器的名称或 ID。
DEST_PATH 是容器内的目标文件或目录路径。
例如:
# 查看运行中的容器 root@hxvm2:~# docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7bfac83b61a3 redis "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis 41a203fa62c5 nginx:latest "/docker-entrypoint.…" 20 hours ago Up 20 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp eager_taussig # 在本地 html 目录中创建 demo.html 文件 root@hxvm2:~# echo '<h1>hello</h1>' > ./html/demo.html # 查看 demo.html 文件内容 root@hxvm2:~# cat ./html/demo.html <h1>hello</h1> # 将本地 demo.html 文件复制到容器 root@hxvm2:~# docker container cp ./html/demo.html 41a203fa62c5:/usr/share/nginx/html Successfully copied 2.05kB to 41a203fa62c5:/usr/share/nginx/html # 访问容器中的文件 root@hxvm2:~# curl localhost:8080/demo.html <h1>hello</h1>
上面命令将把本地的 html 目录下的 demo.html 文件复制到 ID 为 41a203fa62c5 的容器中的 /usr/share/nginx/html 目录下。
(1)备份容器内的数据
可以使用docker container cp将容器内的重要数据文件复制到本地进行备份,以防数据丢失。例如,定期将容器内的数据库文件复制到本地存储。
(2)向容器中添加配置文件或数据
在容器运行时,可能需要向容器中添加一些配置文件或数据文件。可以使用docker container cp从本地将这些文件复制到容器中。例如,向容器中的应用程序添加新的配置文件以改变其行为。
(3)调试和故障排除
当容器中的应用出现问题时,可以将容器内的日志文件复制到本地进行分析,以帮助确定问题的根源。例如,复制容器内的应用程序日志文件到本地,使用文本编辑器或日志分析工具进行查看。
docker container cp 命令是一个方便的工具,用于在容器和本地文件系统之间进行文件复制操作,在管理和调试容器化应用时非常有用。但在使用时需要注意权限和路径正确性等问题。
点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。