Docker学习之volume

提供独立于容器之外的持久化存储

比如说mysql容器,msyql中的数据应该是持久化的,故应该存储在volume中。volume还提供容器之间的共享存储

volume操作

容器和宿主机目录挂载的三种方式:

1.第一种方式:

# 运行容器内部地址nginx用来访问网页的地址/usr/share/nginx/html 
docker run -d --name nginx -v /usr/share/nginx/html nginx
#给出容器的所有信息
docker inspect nginx 
> Mounts.Source  宿主机目录 [如果是mac,则该路径不是mac上的实际路径,因为mac上运行docker是还有一层虚拟层,这是docker虚拟层中的路径,可以在docker中访问到]
> Mounts.Destination:/usr/share/nginx/html/ 容器目录
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty [这个路径才是mac本身挂载的目录]


2.第二种方式:

#将当前目录下的html子目录挂载到容器中中的/var/www/html
docker run -p 80:80 -d -v $PWD/html:/var/www/html nginx


3.第三种方式:

# 宿主机目录:$PWD/data docker目录:/var/mydata  容器名:data_container 基础镜像:ubuntu
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
# -it表示使用交互的方式进入容器[默认ubuntu基础镜像没有服务]
docker run -it --volumes-from data_container ubuntu /bin/bash
#进入后执行mount,可以看到有/var/mydata目录的挂载信息
mount

猜你喜欢

转载自www.cnblogs.com/twodoge/p/10294734.html