利用Dockerfile自定義鏡像-圖解輕鬆學Docker&K8S

利用Dockerfile自定義鏡像-圖解輕鬆學Docker&K8S

>>> 點我開始視頻學習 <<<

你好,我是老齊,本節咱們來學習使用docker file配置文件,構建屬於自己的鏡像。回到咱們的控制檯,在這首先來看一下。上一節課我們學習瞭如何從遠程倉庫來安裝tomcat 鏡像。對於這個tomcat來說,只要運行一個非常簡單的命令。

Docker run -p 8000 tomcat

馬上一個全新的tomcat就會給我們完成自動部署,但這裏也衍生出來一個問題,作爲當前的tomcat他並不是一個有效的應用,因爲我們並沒有在上面發佈任何屬於自己的web頁面,未來我們希望在tomcat的基礎上安裝自己的網頁該怎麼做呢?

這就需要我們編寫一個Docker中獨有的文件dockerfile。什麼是dockerfile?我們來看一下。

#利用FROM命令設置基準鏡像
FROM tomcat:latest
#cd /usr/local/tomcat/webapps
WORKDIR /usr/local/tomcat/webapps
#ADD用於複製本地文件到鏡像中
ADD docker-web ./docker-web

它的作用是對我們的鏡像進行描述,描述我們的鏡像到底要做哪些工作,在這個文件中它書寫了一系列的指令,通過這些指令docker就知道我們如果要安裝一個tomcat,需要哪幾步,安裝 一個redis需要哪幾步,這非常像我們linux中的shell腳本或者是windows中的bat。

作爲dockerfile 提供了很多的命令,每一個命令都有他自己的用意,歸根到底它就是爲了完成我們一個新鏡像的製作。
文中涉及的源代碼和訓練素材可以從下面鏈接下載

http://itlaoqi.com/chapter/1650.html

下面我們分別介紹一下每一句的含義:

#利用FROM命令設置基準鏡像
FROM tomcat:latest

現在我們新創建一個核心的配置文件,這個文件名就叫Dockerfile。注意這個文件名是不要有任何擴展名的,作爲Dockerfile他要描述我們新產生鏡像的一系列操作步驟,
from代表我們從哪個基準鏡像進行擴展,作爲大多數應用都是在現有的鏡像基礎上擴展而來的,所以這裏的tomcat就是tomcat鏡像進行擴展。
這裏還會涉及到一個新問題,tomcat後面冒號LATEST是什麼呢?它是版本號在前面,我們不是下載了tomcat嗎?來看一下,作爲tomcat是鏡像名字,但是tag其實對應的就是版本了,如果下載時沒有指定的話,默認就會下載LATEST的版本,這裏我from以後書寫的格式就是鏡像的名字冒號再加上tag版本號,這樣我們就可以在鏡像基礎上進行擴展了。

#cd /usr/local/tomcat/webapps 切換鏡像內部工作目錄
WORKDIR /usr/local/tomcat/webapps

workdir指向/usr/local/tomcat/webapps
workdir代表工作目錄的意思,其實非常像我們在Linux中的cd。這個指令我們將當前工作的目錄跳轉到這個目錄下

小技巧:如何進入指定容器呢,使用下面命令,確定要切換的工作目錄?

docker exec -it 容器編號 /bin/bash
ls
cd 'usr/local/tomcat/webapps
#ADD用於複製本地文件到鏡像中
ADD docker-web ./docker-web

ADD命令ADD是複製的意思,ADD命令用於複製本地的文件到鏡像的指定位置。至於它的用法也很簡單,第一個參數docker-web是指我們本地的目錄。第二個參數是指向鏡像中要複製到哪個目錄, 這個文件夾如果不存在的話,則docker會自動創建。
作爲文件存儲好了怎麼用?只有通過構建加載dockerfile纔可以完成新的鏡像構建。

docker build -t 鏡像名:版本號 dockerfile所在目錄

build的就是構建的意思,根據指定的dockerfile來進行新鏡像的構建,
在build的後面我們增加一個參數-t,-t代表爲新鏡像賦予一個名字。例如這裏itlaoqi/mydocker-web:1.0,而第二個參數是要指向dockerfile所在的目錄是哪個
利用Dockerfile自定義鏡像-圖解輕鬆學Docker&K8S

構建好以後,來咱們再利用

Docker images

查看本地所有經驗,itlaoqi/mydocker-web出現在列表
利用Dockerfile自定義鏡像-圖解輕鬆學Docker&K8S

利用docker run創建新的容器

docker run -p 8001:8080 itlaoqi/mydocker-web:1.0

這樣我們便完成了從dockerfile編寫到容器運行的全過程.
在後面的章節我們將繼續學習dockerfile中各種常用命令的使用辦法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章