在Docker中,文件可以从宿主机传输到容器内部,也可以从容器内部传输到宿主机。以下是两种情况的具体命令和步骤:
从宿主机传输文件到容器内部
使用 docker cp
命令:
docker cp /path/on/host [Container_ID_or_Name]:/path/in/container
/path/on/host
是宿主机上的文件或目录的路径。[Container_ID_or_Name]
是容器的ID或你为其指定的名称。/path/in/container
是容器内部的目标路径。
从容器内部传输文件到宿主机
同样使用 docker cp
命令,但是方向相反:
docker cp [Container_ID_or_Name]:/path/in/container /path/on/host
/path/in/container
是容器内部的文件或目录的路径。/path/on/host
是你希望将文件复制到的宿主机上的路径。
示例
假设你有一个运行中的容器,其ID为 my_container
,你想要将宿主机上的 example.txt
文件复制到容器的 /data
目录中,并且从容器的 /data
目录中复制一个名为 result.txt
的文件回宿主机的当前目录。
-
将文件从宿主机复制到容器内部:
docker cp example.txt my_container:/data
-
将文件从容器内部复制到宿主机:
docker cp my_container:/data/result.txt .
这里的
.
表示当前目录,你可以根据需要更改为任何其他宿主机上的路径。
注意事项
- 确保容器内部的路径是存在的,否则
docker cp
命令会失败。 - 如果容器内部的路径不存在,Docker不会自动创建它,你需要先在容器内部创建该路径,或者使用
docker exec
命令在容器内部运行创建目录的命令。 - 使用
docker cp
命令时,不会保留文件的所有权和权限,这些会在容器内部的文件上重新设置。如果需要保持文件的原始权限,你可能需要在复制后手动调整。