前言: 在实际工作中,为了方便操作docker的数据,我们可以使用持久化技术。
一:数据卷(volumes)的管理:
# docker volume create edc-nginx-vol
# docker volume ls
# docker volume inspect edc-nginx-vol
二:使用自定义的容器卷运行docker容器:
docker run -d -it --name=nginx -p 8800:80 -v edc-nginx-vol:/usr/home/ygz/桌面 nginx
# -d 后台运行
-p 指定运行的端口
-v 指定要挂载的容器
/usr/home/ygz/桌面 # 容器生成数据的存放的地方
三:使用:docker inspect 容器id 查看mount具体信息
docker inspect df55
"Mounts": [
{
"Type": "volume",
"Name": "edc-nginx-vol", # 数据卷名称
"Source": "/var/lib/docker/volumes/edc-nginx-vol/_data", #宿主机的数据位置
"Destination": "/usr/home/ygz/桌面", # 容器内的数据位置
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],
四:再使用此数据卷启动一个容器,则可以做到容器共享数据卷
ygz@ygz-virtual-machine:/var/lib/docker/volumes$ docker run -d -it --name=nginx2 -p 8801:80 -v edc-nginx-vol:/usr/home/ygz/桌面 nginx
949c539ae757499743118ba336aca098245a5c74d8c18ab847b4308b35c423d0
ygz@ygz-virtual-machine:/var/lib/docker/volumes$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
949c539ae757 nginx "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:8801->80/tcp, :::8801->80/tcp nginx2
f5bbe95df42c nginx "/docker-entrypoint.…" 45 minutes ago Up 45 minutes 0.0.0.0:8800->80/tcp, :::8800->80/tcp nginx
ygz@ygz-virtual-machine:/var/lib/docker/volumes$ docker exec -it 949 /bin/bash
root@949c539ae757:/# cd /usr/home/ygz/桌面
root@949c539ae757:/usr/home/ygz/桌面# ls
hhh wodir.html xxx
root@949c539ae757:/usr/home/ygz/桌面#