点击学习开源企业 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 软件 教程。