主頁 > 知識庫 > 使用Docker構(gòu)建企業(yè)級自定義鏡像的方法

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

熱門標(biāo)簽:百度競價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 使用U盤裝系統(tǒng) 網(wǎng)站建設(shè) 智能手機(jī) 阿里云 美圖手機(jī) 檢查注冊表項(xiàng) 硅谷的囚徒呼叫中心

前言

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

構(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)的依賴項(xiàng)。

$ sudo yum remove docker \

     docker-client \

     docker-client-latest \

     docker-common \

     docker-latest \

     docker-latest-logrotate \

     docker-logrotate \

     docker-engine

安裝 Docker Engine-Community

使用 Docker 倉庫進(jìn)行安裝

在新主機(jī)上首次安裝 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 命令中指定版本的情況下,進(jìn)行的安裝或更新將始終安裝最高版本,這可能不適合您的穩(wěn)定性需求。

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

要安裝特定版本的 Docker Engine-Community,請?jiān)诖鎯熘辛谐隹捎冒姹?,然后選擇并安裝:

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

$ 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

通過運(yùn)行 hello-world 映像來驗(yàn)證是否正確安裝了 Docker Engine-Community 。

$ sudo docker run hello-world

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

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

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

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

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

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)用的鏡像,更靈活、鏡像分層管理、可擴(kuò)展。

到此這篇關(guān)于使用Docker構(gòu)建企業(yè)級自定義鏡像的方法的文章就介紹到這了,更多相關(guān)Docker構(gòu)建企業(yè)級自定義鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:煙臺 湘潭 湖北 黃山 懷化 賀州 通遼 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Docker構(gòu)建企業(yè)級自定義鏡像的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266