初识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 @ 2022-04-21 23:27  小罗要有出息  阅读(28)  评论(0)    收藏  举报