初识dockerfile

dockerfile是创建镜像的基础文件,镜像是一层一层下载的,所有dockerfile的命令也是一层一层的

  1. 简单的dockerfile命令
FROM centos # 以centos为运行基础
VOLUME ["volume01","volume02"] #挂载卷
CMD echo "----end----" #镜像创建成功后打印的文字
CMD /bin/bash # 进入镜像时,默认进入/bin/bash命令行
  1. 写好了文件命令,就可以更具这个文件创建镜像了
docker bulid -f dockerfile -t 自定义镜像名:版本号 .(注意这个点,表示在当前目录创建镜像)
  1. 查看我们自己创建的镜像
    image
  2. 运行并进入我们创建的镜像
[root@iZbp1htnoa70qlle394f3wZ docker-test-volume]# docker run -it 4d030b2b738b /bin/bash
[root@04cebc1b7a2e /]# ls -al
total 64
drwxr-xr-x 1 root root 4096 Apr 21 15:07 .
drwxr-xr-x 1 root root 4096 Apr 21 15:07 ..
-rwxr-xr-x 1 root root 0 Apr 21 15:07 .dockerenv
lrwxrwxrwx 1 root root 7 Nov 3 2020 bin -> usr/bin
drwxr-xr-x 5 root root 360 Apr 21 15:07 dev
drwxr-xr-x 1 root root 4096 Apr 21 15:07 etc
drwxr-xr-x 2 root root 4096 Nov 3 2020 home
lrwxrwxrwx 1 root root 7 Nov 3 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 3 2020 lib64 -> usr/lib64
drwx------ 2 root root 4096 Sep 15 2021 lost+found
drwxr-xr-x 2 root root 4096 Nov 3 2020 media
drwxr-xr-x 2 root root 4096 Nov 3 2020 mnt
drwxr-xr-x 2 root root 4096 Nov 3 2020 opt
dr-xr-xr-x 105 root root 0 Apr 21 15:07 proc
dr-xr-x--- 2 root root 4096 Sep 15 2021 root
drwxr-xr-x 11 root root 4096 Sep 15 2021 run
lrwxrwxrwx 1 root root 8 Nov 3 2020 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Nov 3 2020 srv
dr-xr-xr-x 13 root root 0 Apr 21 15:07 sys
drwxrwxrwt 7 root root 4096 Sep 15 2021 tmp
drwxr-xr-x 12 root root 4096 Sep 15 2021 usr
drwxr-xr-x 20 root root 4096 Sep 15 2021 var
drwxr-xr-x 2 root root 4096 Apr 21 15:07 volume01 # 我们创建的卷
drwxr-xr-x 2 root root 4096 Apr 21 15:07 volume02
  1. 在volume01文件夹中创建文件
[root@iZbp1htnoa70qlle394f3wZ /]# docker exec -it a36c3799b8ce /bin/bash
[root@a36c3799b8ce /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin sr
[root@a36c3799b8ce /]# cd volume01
[root@a36c3799b8ce volume01]# touch luoking.java
[root@a36c3799b8ce volume01]# ls
luoking.java
  1. 退出容器,在宿主机查看卷的具体信息
docker inspect a36c3799b8ce
"Mounts": [
{
"Type": "volume",
"Name": "6c52b0f7866b0b9fd960697d9882b22ef9864edb25fcdd8d1dfc13b1114a7f26",
"Source": "/var/lib/docker/volumes/6c52b0f7866b0b9fd960697d9882b22ef9864edb25fcdd8d1dfc13b1114a7f26/_data",
"Destination": "volume01",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "f47a98c3e9c67f79dc842b2047fd4f7440de209bfd1cbdbf1dc13c58610d0808",
"Source": "/var/lib/docker/volumes/f47a98c3e9c67f79dc842b2047fd4f7440de209bfd1cbdbf1dc13c58610d0808/_data",
"Destination": "volume02",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
  1. 在本地挂载卷的目录查看
[root@iZbp1htnoa70qlle394f3wZ /]# cd /var/lib/docker/volumes/6c52b0f7866b0b9fd960697d9882b22ef9864edb25fcdd8d1dfc13b1114a7f26/_data
[root@iZbp1htnoa70qlle394f3wZ _data]# ls
luoking.java # 发现文件已同步
posted @   小罗要有出息  阅读(23)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示