Docker提供三种方式将数据从宿主机挂载到容器中:
-
volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式 -
bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中。 -
tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在任何位置,可以使用tmpfs,同时避免写入容器可写层提高性能。

image.png
使用volumes(卷)方式
- 查看数据卷
docker volume ls
- 创建数据卷
docker volume create nginx_vol
- 查看数据卷详细时间
docker volume inspect nginx_vol
- 删除所有的容器
docker rm -f $(docker ps -a |awk '{print $1}')
新建一个容器,并进入
[root@localhost ~]# docker run -d nginx
8d25abf3bb9b1e7191812ebb01bc4bac619416516a7de5c8fb5b1a67f8474942
[root@localhost ~]# docker exec -it 8d25 bash
root@8d25abf3bb9b:/# ls /usr/share/nginx/html
50x.html index.html
- 新建一个名为
nginx01的容器 并把/usr/share/nginx/html下面的index.html持久化到nginx_vol卷中
前提:先建一个
nginx_vol卷
docker run -d --name nginx01 --mount src=nginx_vol,dst=/usr/share/nginx/html nginx(镜像名)
//加了端口映射
docker run -d --name nginx02 -p 88:80 --mount src=nginx_vol,dst=/var/share/nginx/html nginx(镜像名)
//旧的方式
docker run -d --name nginx01 -p 88:80 -v nginx_vol:/usr/share/nginx/html nginx
查看容器的数据卷情况
docker inspect nginx01 |more

image.png
- 关闭容器
docker stop nginx03