dockerfile是创建镜像的基础文件,镜像是一层一层下载的,所有dockerfile的命令也是一层一层的
- 简单的dockerfile命令
| FROM centos |
| |
| VOLUME ["volume01","volume02"] |
| |
| CMD echo "----end----" |
| |
| CMD /bin/bash |
- 写好了文件命令,就可以更具这个文件创建镜像了
| docker bulid -f dockerfile -t 自定义镜像名:版本号 .(注意这个点,表示在当前目录创建镜像) |
- 查看我们自己创建的镜像

- 运行并进入我们创建的镜像
| [root@iZbp1htnoa70qlle394f3wZ docker-test-volume] |
| [root@04cebc1b7a2e /] |
| 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 |
- 在volume01文件夹中创建文件
| [root@iZbp1htnoa70qlle394f3wZ /] |
| [root@a36c3799b8ce /] |
| bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin sr |
| [root@a36c3799b8ce /] |
| [root@a36c3799b8ce volume01] |
| [root@a36c3799b8ce volume01] |
| luoking.java |
- 退出容器,在宿主机查看卷的具体信息
| 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": "" |
| } |
| ], |
- 在本地挂载卷的目录查看
| [root@iZbp1htnoa70qlle394f3wZ /] |
| [root@iZbp1htnoa70qlle394f3wZ _data] |
| luoking.java |
· 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语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决