千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)

千鋒雲端計算發表於2020-03-20

我們可以把剛才的對容器的所有操作命令都記錄到一個檔案裡,就像寫更指令碼程式。之後用 docker build 命令以此檔案為基礎製作一個映象,並會自動提交到本地倉庫。這樣的話映象的構建會變的透明化,對映象的維護起來也更加簡單,只修改這個檔案即可。

千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)

同時分享也更加簡單快捷,因為只要分享這個檔案即可。

Dokcerfile 是一個普通的文字檔案,檔名一般叫 Dockerfile。

其中包含了一系列的指令(Instruction), 每一條指令都會構建一層,就是描述該層是如何建立的。

小試牛刀

示例:

  1. 編輯 Dockerfile 檔案

[root@localhost ~]# mkdir centos_dockerfile

[root@localhost ~]# cd centos_dockerfile/

[root@localhost centos_dockerfile]# vi Dockerfile

FROM centos:latest

LABEL maintainer="yangge <yangge@qf.com>" description="Install tree vim*"

RUN rpm -qa | grep tree || yum install -y tree vim*

指令介紹:

FORM 定義一個基礎映象LABEL 定義一些後設資料資訊,比如作者、版本、關於映象的描述資訊RUN 執行命令列的命令

編輯完,儲存退出

千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)

插個小訊息,也方便想學習的同學,在文章下方留言即可試聽課程外加領取千鋒HTML5、UI互動設計、PHP、Java+雲資料、大資料開發、VR/AR/Unity遊戲開發、Python人工智慧、Linux雲端計算、全棧軟體測試、網路安全等全部的影片學習教程。

2.開始構建映象

命令語法格式:

docker bulid -t 倉庫名/映象名:tag .

docker build [選項] <上下文路徑/URL/->

示例:

[root@localhost centos_dockerfile]# docker build -t centos:1.20 .

Sending build context to Docker daemon 2.048kB

Step 1/3 : FROM centos:latest

---> e934aafc2206

Step 2/3 : LABEL maintainer="shark<dockerhub@163.com>" description="Install tree vim*"

---> Using cache

---> 1207b2848015

Step 3/3 : RUN rpm -qa | grep tree || yum install -y tree vim*

---> Running in 33d321b249d7

Loaded plugins: fastestmirror, ovl

Determining fastest mirrors

...略...

Complete!

Removing intermediate container 33d321b249d7

---> adc30981bc84

Successfully built adc30981bc84 # 表示構建成功

Successfully tagged centos:1.20 # TAG 標籤

[root@localhost centos_dockerfile]#

構建映象的上下文(context)

這個 . 表示當前目錄,這實際上是在指定上下文的目錄是當前目錄,docker build 命令會將該目錄下的內容打包交給 Docker 引擎以幫助構建映象。

docker build 命令得知這個路徑後,會將路徑下的所有內容打包,然後上傳給 Docker 引擎。這樣 Docker 引擎收到這個上下文包後,展開就會獲得構建映象所需的一切檔案。

千鋒Linux雲端計算教程全套影片合集:Dockerfile詳解(一)

最佳實戰

一般來說,應該會將 Dockerfile 置於一個空目錄下,或者專案根目錄下。如果該目錄下沒有所需檔案,那麼應該把所需檔案複製一份過來。如果目錄下有些東西確實不希望構建時傳給 Docker 引擎,那麼可以用 .gitignore 一樣的語法寫一個 .dockerignore,該檔案是用於剔除不需要作為上下文傳遞給 Docker 引擎的Dockerfile 的檔名並不要求必須為 Dockerfile,而且並不要求必須位於上下文目錄中,比如可以用 -f ../Dockerfile.qf 引數指定某個檔案作為 Dockerfile。一般大家習慣性的會使用預設的檔名 Dockerfile,以及會將其置於映象構建上下文目錄中。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2681704/,如需轉載,請註明出處,否則將追究法律責任。

相關文章