「这是我参与2022首次更文挑战的第七天,活动详情查看:2022首次更文挑战」
具名挂载和匿名挂载
匿名挂载
通过-v命令
-v 容器目录
docker run -d -P --name nginx -v /etc/nginx nginx01
查看所有volume(卷)的情况
docker volume ls
这里发现,这种就是匿名挂载,我们在 -v 只写了容器内的路径,没有写容器外的路径。
具名挂载
通过 -v 命令实现具名挂载
docker -v 卷名:容器路径
查看这个卷
docker volume inspect jump-nginx
所有docker容器内的卷,没有指定目录的情况下都是在 ' /var/lib/docker/卷名/_data'
我们通过具名挂载ke'yi方便的找到我们的一个卷,大多数情况在使用"具名挂载"
区分
如何确定卷是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载
拓展
通过 -v 容器内路径:ro/rw 改变读写权限
ro readonly #只读
rw readwrite #可读可写
只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!
初识Dockerfile
Dockerfile就是用来构建docker镜像的构建文件!是一个命令脚本!
通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个个的命令每个都是一层!
创建一个dockerfile文件,名字可以随机 。建议Dockerfile
文件中的内容 指令(大写) 参数
FROM ubuntu
VOLUME ["VOLUME01","VOLUME02]
CMD echo "---end---"
CMD /bin/bash
这里的每一个命令,就是镜像的一层!
构建dockerfile
sudo docker build -f /home/docker-text-volume/dockerfile1 -t yus/ubuntu .
#注意" . "是指在当前目录下寻找构建,不可忘加!!!!
启动该容器
这两个卷和外部一定有一个同步的目录!
并且这两个卷是匿名挂载!
查看卷挂载的路径
这种方式我们未来使用的十分多,因为通常会构建自己的镜像!
假设构建镜像时没有该在卷,要手动镜像挂载 -v 卷名:容器内路径