标签:ago centos root Docker8 镜像 挂载 Docker DockerFile docker
Docker8_3:Docker容器数据卷:DockerFile文件挂载【一般都用这个】
什么是DockerFile
DockerFile就是用来构建dokcer镜像的构建文件,是命令脚本,通过这个脚本可以生成镜像,镜像是一层层的,脚本类似,是一个个命令组合的,每个命令是一层。
构建镜像的两种方式
1.搞一个容器改完之后,commit
2.使用DockerFile构建
DockerFile构建镜像(很常用)
为什么经常用DockerFile文件中挂载?
这是自动挂载,启动就会挂载,否则需要你启动镜像的时候,通过命令参数,-v手动挂载。
编写dockerfile文件
# 创建一个dockerfile文件,文件名建议使用dockerfile,这样命令可以不写,默认就是dockerfile
# 文件中的内容 指令(大写)
FROM centos
VOLUME ["volume1","volume2"]
CMD echo "-------end-------"
CMD /bin/bash
# docker镜像是分层的,每个命令就是一层
# VOLUME ["volume1","volume2"],这里测试用的是匿名挂载,等会找对应本机卷目录是字符串,一般都用具名挂载
docker build构建镜像
# docker build -f dockerfile文件路径(相对绝对都可以) -t haokai/centos:1.0 .
# -t 表示target,生成的镜像名:TAG
# 注意:后面的.别忽略
docker build -f dockerfile1 -t haokai/centos:1.0 .
输出:
[root@localhost volume]# cat dockerfile1
FROM centos
VOLUME ["volume1","volume2"]
CMD echo "-------end-------"
CMD /bin/bash
[root@localhost volume]# docker build -f dockerfile1 -t haokai/centos:1.0 .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
---> 5d0da3dc9764
Step 2/4 : VOLUME ["volume1","volume2"]
---> Running in ee2bb7923a30
Removing intermediate container ee2bb7923a30
---> b63619ea74aa
Step 3/4 : CMD echo "-------end-------"
---> Running in f8b93d0ba281
Removing intermediate container f8b93d0ba281
---> 5dc5d67f480f
Step 4/4 : CMD /bin/bash
---> Running in 4fc8003865da
Removing intermediate container 4fc8003865da
---> 347c4f0aabd2
Successfully built 347c4f0aabd2
Successfully tagged haokai/centos:1.0
[root@localhost volume]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
haokai/centos 1.0 347c4f0aabd2 8 minutes ago 231MB
mysql 5.7 c20987f18b13 2 weeks ago 448MB
tomcat 9.0 76206e3ba4b1 7 weeks ago 680MB
nginx latest ea335eea17ab 7 weeks ago 141MB
centos latest 5d0da3dc9764 3 months ago 231MB
portainer/portainer latest 580c0e4e98b0 9 months ago 79.1MB
elasticsearch 7.7.0 7ec4f35ab452 20 months ago 757MB
elasticsearch 7.6.2 f29a1ee41030 21 months ago 791MB
[root@localhost volume]# docker run -it 347c4f0aabd2
[root@8bb084df8cb4 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume1 volume2
[root@8bb084df8cb4 /]#
查看挂载目录
# 查看容器挂载情况
docker inspect 容器id
"Mounts": [
{
"Type": "volume",
"Name": "b9de58c7d586c587509df78fbf7029dda0ff450cbd12af640d4037f9a264a352",
"Source": "/var/lib/docker/volumes/b9de58c7d586c587509df78fbf7029dda0ff450cbd12af640d4037f9a264a352/_data",
"Destination": "volume1",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "75a18f597decfb6f2207899e0354acd176bf0df7dd42b40f02137d83ed9580cf",
"Source": "/var/lib/docker/volumes/75a18f597decfb6f2207899e0354acd176bf0df7dd42b40f02137d83ed9580cf/_data",
"Destination": "volume2",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
标签:ago,centos,root,Docker8,镜像,挂载,Docker,DockerFile,docker 来源: https://blog.csdn.net/qq_41929714/article/details/122363845
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。