挂载与Dockerfile

288 阅读2分钟

「这是我参与2022首次更文挑战的第七天,活动详情查看:2022首次更文挑战

具名挂载和匿名挂载

匿名挂载

通过-v命令

-v 容器目录
​
docker run -d -P --name nginx -v /etc/nginx nginx01

查看所有volume(卷)的情况

docker volume ls

QQ图片20220212215121.png

这里发现,这种就是匿名挂载,我们在 -v 只写了容器内的路径,没有写容器外的路径。

具名挂载

通过 -v 命令实现具名挂载

docker -v 卷名:容器路径

image-20220212215651532.png 查看这个卷

docker volume inspect jump-nginx

QQ图片20220213162730.png 所有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 .
​
#注意" . "是指在当前目录下寻找构建,不可忘加!!!!

QQ图片20220213162723.png

启动该容器

QQ图片20220213170056.png 这两个卷和外部一定有一个同步的目录!

并且这两个卷是匿名挂载!

查看卷挂载的路径

QQ图片20220213170230.png

这种方式我们未来使用的十分多,因为通常会构建自己的镜像!

假设构建镜像时没有该在卷,要手动镜像挂载 -v 卷名:容器内路径