使用Dockerfile建立自己的docker映象
前言
docker理論之類的就不說了,網上一大頓,直接說我們最關心的,就是如何構建我們自己的映象
映象是 Docker 的基礎,它是容器執行環境的靜態模板,包含了應用以及依賴環境。
製作映象步驟如下:
1.準備構建環境:
映象構建環境,就是製作映象的目錄,裡面包含了製作映象所需要的所有資源,包含應用、配置檔案、其他資源等。
2.編寫 Dockerfile 檔案:
Dockerfile 檔案包含了映象構建時需要執行的命令,包括拷貝需要的檔案到映象裡面、映象啟動時執行的命令等。
3.使用 docker build 命令構建映象:
docker build 命令將逐條執行Dockerfile 檔案裡的命令來構建映象。
4.釋出映象:
把映象釋出到映象中心供其他人使用
通用建議
1.每個容器只執行一個應用,每個容器只執行一個應用讓部署變得清晰明瞭。
2.最小化映象層數
Dockerfile的每句話都會在構建映象時形成一個映象層,由於一個映象是有最大層數限制的(計算時還要加上基礎映象的層數),所以儘量減少Dockerfile的命令語句可以減少映象的層數,比如可以把多條run語句合併成一條。
docker語法說明
Docker 可以通過讀取一個 Dockerfile 檔案裡面的指令來自動構建映象。Dockerfile是一個文字檔案,它包含了使用者在構建一個映象時會在命令列裡呼叫的所有命令。使用者可以使用dockerbuild命令來自動執行Dockerfile裡的一系列命令列指令,以便構建出自己想要的映象。
用法
建立一個空目錄,在裡面建立 Dockerfile 檔案,進入該目錄執行以下語句構建映象(注意最後的'.'):
$ docker build -t myapp:1.0 . -t後面的myapp 代表映象名,1.0代表映象版本號,如果不指定版本號,則Docker會自動給你設一個版本號latest。‘
’格式
Dockerfile的格式如下:
# Comment
指令
1.FROM
FROM <image>:<tag> FROM指令設定後續指令的基礎映象。
FROM指令必須是 Dockerfile 中第一條非註釋的指令。
tag是可選的。如果您省略了,構建器將會使用預設值latest。
例子:
FROM myapplication:1.0.0
2.MAINTAINER
MAINTAINER <name>
MAINTAINER指令用來在生成的映象中設定作者域。
例子:
MAINTAINER myname “myname"
多餘的指令這裡就不一一列出了,具體可以查閱docker教程
基於tomcat映象建立應用docmanager的映象
1. 準備構建環境
新建 doc資料夾,將 docmanager-deploy.war包解壓到 docmanager檔案
2. 編寫 Dockerfile
示例 Dockerfile 內容如下:
Dockerfile 解釋如下:
1.註釋說明 Dockerfile 的作用;
2.註釋說明 Dockerfile 的版本資訊;
3.選擇tomcat作為基礎映象;
4.新增 Dockerfile 的維護者資訊;
5.新增 docmanager目錄到 tomcat 相應目錄下;
3. 製作映象
使用 docker build 命令來製作映象,注意命令末尾的'.':
# docker build -t docmanager :1.0.0 .
4 檢視製作映象
5. 釋出映象
映象製作完成後,只能在本地使用,需要釋出到映象中心,使用者才能使用。 使用docker push命令將本地映象釋出到私有映象中心****.docker.com(如果有的話):
docker push ****.docker.com/子目錄
6. 測試映象
docker run -it -p 8090:8080 docmanager:1.0.0
docker run -it -p 8090:8080 docmanager:1.0.0
7.檢視執行結果
可以看到,自己製作的映象已經在容器中啟動,本人自己製作過程,經過驗證,可以使用。
本文側重於實踐,理論方面可以更多的參考docker官網,裡面絕對有你想要的任何東西,可能製作的映象比較簡單,沒有用到一些命令,但是這不是本文的重點,純屬個人學習筆記,非喜勿噴,歡迎交流!