溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Docker構(gòu)建企業(yè)級自定義鏡像

發(fā)布時間:2020-07-23 11:24:03 來源:億速云 閱讀:174 作者:小豬 欄目:服務(wù)器

小編這次要給大家分享的是怎么使用Docker構(gòu)建企業(yè)級自定義鏡像,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

前言

臨下班前,樓主接到了一個需求,由于基礎(chǔ)鏡像標(biāo)準(zhǔn)發(fā)生變更,需要按照最新的Docker 鏡像標(biāo)準(zhǔn)構(gòu)建自己應(yīng)用的自定義鏡像。目前的標(biāo)準(zhǔn)是這樣的:基礎(chǔ)架構(gòu)組只提供所有項目必須接入的3個公共鏡像,這3個公共基礎(chǔ)鏡像包含了:JDK8、Skywalking、Arthas。對于各自業(yè)務(wù)組的應(yīng)用如果還需要加入其它鏡像,則由各個業(yè)務(wù)組自己基于基礎(chǔ)架構(gòu)組提供的公共鏡像之上,再添加自定義的鏡像,結(jié)構(gòu)圖如下:

怎么使用Docker構(gòu)建企業(yè)級自定義鏡像

構(gòu)建步驟

編寫Dockerfile

基于最新的規(guī)范來看,我們需要編寫一個Dockerfile,然后引用基礎(chǔ)架構(gòu)組提供的基礎(chǔ)鏡像,再加入應(yīng)用需要的其他鏡像。因此最終的 Dockerfile 文件如下:

FROM 基礎(chǔ)鏡像地址
RUN apk add 需要添加的自定義鏡像
...

在Centos7下安裝Docker環(huán)境

卸載舊版本

較舊的 Docker 版本稱為 docker 或 docker-engine 。如果已安裝這些程序,請卸載它們以及相關(guān)的依賴項。

$ sudo yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine

安裝 Docker Engine-Community

使用 Docker 倉庫進行安裝

在新主機上首次安裝 Docker Engine-Community 之前,需要設(shè)置 Docker 倉庫。之后,您可以從倉庫安裝和更新 Docker。

設(shè)置倉庫

安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲驅(qū)動程序需要 device-mapper-persistent-data 和 lvm2。

$ sudo yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2

使用以下命令來設(shè)置穩(wěn)定的倉庫。

$ sudo yum-config-manager \
 --add-repo \
 https://download.docker.com/linux/centos/docker-ce.repo

安裝 Docker Engine-Community

安裝最新版本的 Docker Engine-Community 和 containerd,或者轉(zhuǎn)到下一步安裝特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密鑰,請選是。

有多個 Docker 倉庫嗎?

如果啟用了多個 Docker 倉庫,則在未在 yum install 或 yum update 命令中指定版本的情況下,進行的安裝或更新將始終安裝最高版本,這可能不適合您的穩(wěn)定性需求。

Docker 安裝完默認未啟動。并且已經(jīng)創(chuàng)建好 docker 用戶組,但該用戶組下沒有用戶。

要安裝特定版本的 Docker Engine-Community,請在存儲庫中列出可用版本,然后選擇并安裝:

1、列出并排序您存儲庫中可用的版本。此示例按版本號(從高到低)對結(jié)果進行排序。

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.0-3.el7      docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7      docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7      docker-ce-stable

2、通過其完整的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,并用連字符(-)分隔。例如:docker-ce-18.09.1。

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

啟動 Docker。

$ sudo systemctl start docker

通過運行 hello-world 映像來驗證是否正確安裝了 Docker Engine-Community 。

$ sudo docker run hello-world

開始構(gòu)建應(yīng)用自定義鏡像

根據(jù) Dockerfile 文件進行自定義鏡像的構(gòu)建

在Dockerfile 文件所在的目錄下執(zhí)行如下命令進行自定義鏡像的構(gòu)建:

sudo docker build -f Dockerfile -t 你的自定義鏡像名稱 .

推送到企業(yè)私有的鏡像harbor之前進行登錄

docker login 企業(yè)私有的harbor地址
輸入用戶名
輸入密碼
完成登錄

將構(gòu)建完成的自定義鏡像推送到企業(yè)私有的harbor

sudo docker push 你的自定義鏡像名稱

總結(jié)

通過 1.編寫自定義構(gòu)建鏡像的Dockerfile 2.安裝Docker環(huán)境 3.構(gòu)建自定義鏡像 4.上傳自定義鏡像到harbor 以上4個步驟,我們便完成了應(yīng)用自定義鏡像的構(gòu)建,后續(xù)我們自己的應(yīng)用中直接使用自定義鏡像即可,這樣做的好處就是基于基礎(chǔ)的鏡像,我們可以隨意組合,構(gòu)建出滿足自己應(yīng)用的鏡像,更靈活、鏡像分層管理、可擴展。

看完這篇關(guān)于怎么使用Docker構(gòu)建企業(yè)級自定義鏡像的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI