初識Dockerfile
dockerfile就是用來建構docker鏡像的建構檔案!就是指令腳本!
通過這個腳本可以生成鏡像,鏡像是一層一層的,腳本一個一個的指令,每個指令都是一層!
[root@localhost ~]# cat dockerfile
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "=========end========="
CMD /bin/bash
# 這裡的每個指令就是鏡像的一層

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhangshan_centos 1.0 2222807583cf 4 minutes ago 231MB
啟動自己的容器
這個卷和外部一定有一個同步的目錄
檢視一下卷挂載的路徑(inspect)
測試一下是否同步(可建立檔案測試)
這種方式應用廣泛,應為我們可能會建構自己的鏡像
假設建構鏡像時沒有挂載卷,要手動鏡像挂載 -v 卷名:容器内路徑
資料卷容器
多個mysql資料同步
# 啟動3個容器,通過我們剛才自己建立的鏡像啟動
第一個:
[root@localhost ~]# docker run -it --name docker01 zhangshan_centos:1.0
[root@35e0063c9f65 /]# ls
bin etc lib lost+found mnt proc run srv tmp var volume02
dev home lib64 media opt root sbin sys usr volume01
第二個:
[root@localhost ~]# docker run -it --name docker02 --volumes-from docker01 zhangshan_centos:1.0
[root@ae26bc322675 /]# ls
# 測試:可以删除docker01.檢視一下docker02和docker03是否還可以通路到這個檔案
# 測試依舊可以通路
多個mysql實作資料共享
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 --name mysql01 mysql:5.7
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 --name mysql02 --volumes-from mysql01 mysql:5.7
結論:
容器之間配置資訊的傳遞,資料卷容器的生命周期一直持續到沒有容器使用為止
但是一旦你持久化到本地,這個時候,本地的資料是不會删除的!!!!