天天看點

dockerfile介紹

初識Dockerfile

dockerfile就是用來建構docker鏡像的建構檔案!就是指令腳本!

通過這個腳本可以生成鏡像,鏡像是一層一層的,腳本一個一個的指令,每個指令都是一層!

[root@localhost ~]# cat dockerfile

FROM centos

VOLUME ["volume01","volume02"]

CMD echo "=========end========="

CMD /bin/bash

# 這裡的每個指令就是鏡像的一層

dockerfile介紹

[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

zhangshan_centos 1.0 2222807583cf 4 minutes ago 231MB

啟動自己的容器

dockerfile介紹

這個卷和外部一定有一個同步的目錄

dockerfile介紹

檢視一下卷挂載的路徑(inspect)

dockerfile介紹

測試一下是否同步(可建立檔案測試)

這種方式應用廣泛,應為我們可能會建構自己的鏡像

假設建構鏡像時沒有挂載卷,要手動鏡像挂載 -v 卷名:容器内路徑

資料卷容器

多個mysql資料同步

dockerfile介紹

# 啟動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

dockerfile介紹

# 測試:可以删除docker01.檢視一下docker02和docker03是否還可以通路到這個檔案

# 測試依舊可以通路

dockerfile介紹
dockerfile介紹

多個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

結論:

容器之間配置資訊的傳遞,資料卷容器的生命周期一直持續到沒有容器使用為止

但是一旦你持久化到本地,這個時候,本地的資料是不會删除的!!!!