1、宿主机与容器内文件交换
1.1 首先我们运行一个redis容器
#运行使用了 -d、--rm 两个参数,表示运行在后台,容器停止后自动删除
docker run -d --rm redi
1.2 查看容器运行情况
harbo@harbo-virtual-machine:/tmp$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
791cb2c16403 redis "docker-entrypoint.s…" 23 minutes ago Up 23 minutes 6379/tcp magical_easley
1.3 当前宿主机/tmp目录下,创建了一个1.txt文件,需要将它复制到redis容器/tmp目录下
docker cp 1.txt 791:/tmp
格式:
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
1.4 进入到redis容器
docker exec -it 791 sh
参数:
-i, --interactive Keep STDIN open even if not attached
--privileged Give extended privileges to the command
-t, --tty Allocate a pseudo-TTY
1.5 查看1.txt文件是否存在
harbo@harbo-virtual-machine:/tmp$ docker exec -it 791 sh
# cd /tmp
# ls /tmp
1.txt
#
1.6 将容器/tmp目录下的2.txt,拷贝到宿主机的/tmp目录下,实在宿主机执行,如果是再容器内执行的化,会报错。
docker cp 791:/tmp 2.txt /tmp
格式:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
2、宿主机将自己的文件目录路径挂载到容器内共享同个目录
2.1 宿主机的目录路径=容器内目录路径
# -v 参数把本机的“/tmp”目录挂载到容器里的“/tmp”目录
docker run -d --rm -v /tmp:/tmp redis
参数说明
-v, --volume list Bind mount a volume
--volume-driver string Optional volume driver for the container
--volumes-from list Mount volumes from the specified container(s)
-v、 --卷列表 绑定装载卷
--卷驱动程序字符串 容器的可选卷驱动程序
--来自列表的卷 从指定容器装载卷
2.2 查看容器/tmp目录的文件是否和宿主机的/tmp文件内容相同
docker exec -it c08 sh # c08是容器ID
# ls /tmp
1.txt
3.txt
snap.snapd-desktop-integration
systemd-private-7b6588bd57cc43e6b378f7cf468865a0-ModemManager.service-mgjR68
systemd-pri