詳解docker私有倉(cāng)庫(kù)搭建與使用實(shí)戰(zhàn)
hub.docker.com上可以保存鏡像,但是網(wǎng)速相對(duì)較慢,在內(nèi)部環(huán)境中搭建一個(gè)私有的公共倉(cāng)庫(kù)是個(gè)更好的方案,今天我們就來實(shí)戰(zhàn)搭建私有docker倉(cāng)庫(kù)吧;
環(huán)境規(guī)劃
需要兩臺(tái)機(jī)器:docker私服倉(cāng)庫(kù)的server和使用docker的普通機(jī)器,這兩個(gè)機(jī)器都是ubuntu16版本的server,ip信息如下:
機(jī)器名 | ip | 功能 |
---|---|---|
docker-registry | 192.168.119.148 | docker私有倉(cāng)庫(kù)服務(wù)器 |
docker-app | 192.168.119.155 | 運(yùn)行docker服務(wù)的普通服務(wù)器 |
準(zhǔn)備機(jī)器
本次實(shí)戰(zhàn)中,上述兩臺(tái)機(jī)器是vmware上創(chuàng)建的兩個(gè)虛擬機(jī),都安裝了docker服務(wù),詳細(xì)的創(chuàng)建和安裝過程,請(qǐng)參照《rancher下的kubernetes之一:構(gòu)建標(biāo)準(zhǔn)化vmware鏡像》,記得在vmware中給兩個(gè)鏡像把名字分別改成“docker-registry”和“docker-app”,以免后面搞錯(cuò)了;
虛擬機(jī)啟動(dòng)后,請(qǐng)先修改/etc/hostname文件,將兩個(gè)機(jī)器的hostname分別修改成“docker-registry”和“docker-app”,然后用reboot命令重啟;
安裝私有倉(cāng)庫(kù)
登錄docker-registry機(jī)器(推薦使用SecureCRT);
執(zhí)行以下命令,會(huì)啟動(dòng)一個(gè)registry容器,該容器用于提供私有倉(cāng)庫(kù)的服務(wù):
docker run --name docker-registry -d -p 5000:5000 registry
執(zhí)行docker ps命令看一下容器情況,如下圖:
容器正常啟動(dòng),對(duì)外提供服務(wù)通過5000端口映射到docker-registry的5000端口;
執(zhí)行命令curl -X GET http://127.0.0.1:5000/v2/_catalog,收到的響應(yīng)如下,是個(gè)json對(duì)象,其中repositories對(duì)應(yīng)的值是空的json數(shù)組,表示目前倉(cāng)庫(kù)里還沒有鏡像:
{"repositories":[]}
OK,私有倉(cāng)庫(kù)已經(jīng)創(chuàng)建和啟動(dòng)完畢了,接下來試試如何使用吧;
支持http協(xié)議推送
正常情況下,應(yīng)用服務(wù)器推送鏡像到倉(cāng)庫(kù)用的是https,此處我們通過命令行來測(cè)試推送用的是普通的http,所以需要修改docker的啟動(dòng)參數(shù),使之允許以http協(xié)議工作;
執(zhí)行推送鏡像的機(jī)器是docker-app,所以登錄到此機(jī)器(推薦使用SecureCRT);
修改/etc/default/docker文件,加入以下紅框內(nèi)容:
再修改 /lib/systemd/system/docker.service,以下紅框中的內(nèi)容,第一行為新增,第二行為修改:
執(zhí)行以下命令,重新加載配置信息再重啟docker服務(wù):
systemctl daemon-reload;service docker restart
推送鏡像到私有倉(cāng)庫(kù)
接下來我們?cè)赿ocker-app先下載一個(gè)鏡像,再將這個(gè)鏡像推送到私有倉(cāng)庫(kù)中去;
登錄docker-app機(jī)器(推薦使用SecureCRT);
執(zhí)行命令docker pull tomcat,從hub.docker.com下載最新版本的tomcat鏡像,如下圖:
下載完畢后,執(zhí)行docker images查看鏡像的信息,如下圖:
如上圖紅框所示,這個(gè)鏡像的ID是3dcfe809147d,所以我們執(zhí)行以下命令,給這個(gè)鏡像添加一個(gè)帶有私有倉(cāng)庫(kù)IP的TAG,這樣后面才能成功推送到私有倉(cāng)庫(kù):
docker tag 3dcfe809147d 192.168.119.148:5000/tomcat
再執(zhí)行docker images查看鏡像的信息,如下圖,出現(xiàn)了一個(gè)新的鏡像,REPOSITORY是192.168.119.148:5000/tomcat:
執(zhí)行以下命令進(jìn)行推送:
docker push 192.168.119.148:5000/tomcat
可以看到順利進(jìn)行中,如下圖:
推送成功后,在docker-app和docker-registry上分別執(zhí)行curl -X GET http://192.168.119.148:5000/v2/_catalog,查看私有倉(cāng)庫(kù)的鏡像信息,都能見到如下內(nèi)容:
使用私有倉(cāng)庫(kù)的鏡像
在docker-app機(jī)器上,先執(zhí)行以下命令將本地鏡像刪掉:
docker rmi 192.168.119.148:5000/tomcat tomcat
再執(zhí)行以下命令,用私服上的鏡像來創(chuàng)建一個(gè)容器,映射8080端口:
docker run --name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat
本地沒有鏡像就去私服下載,如下圖:
docker-app的IP是192.168.119.155,所以在當(dāng)前電腦上打開瀏覽器,輸入:192.168.119.155:8080,可以看到下圖熟悉的tomcat歡迎頁(yè):
至此本次實(shí)戰(zhàn)就結(jié)束了,希望能對(duì)您的私有倉(cāng)庫(kù)搭建有所幫助。也希望大家多多支持腳本之家。
- 從零搭建docker私有倉(cāng)庫(kù)的步驟
- docker私有倉(cāng)庫(kù)的搭建和使用詳解
- 搭建Docker私有倉(cāng)庫(kù)(自簽名方式)
- Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn)
- docker私有倉(cāng)庫(kù)harbor搭建過程
- Docker搭建私有倉(cāng)庫(kù)之Harbor的步驟
- 如何使用Docker搭建pypi私有倉(cāng)庫(kù)
- Harbor搭建Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)方法
- 如何搭建配置Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
- Docker容器搭建本地私有倉(cāng)庫(kù)詳情
- 一文教會(huì)你如何高效地搭建Docker私有倉(cāng)庫(kù)
- docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
相關(guān)文章
在CentOS 7上安裝Docker環(huán)境的方法與注意事項(xiàng)
這篇文章主要介紹了在CentOS 7上安裝Docker環(huán)境的方法與注意事項(xiàng),需要的朋友可以參考下2016-10-10docker-compose實(shí)現(xiàn)容器任務(wù)編排的方法步驟
本文主要介紹了docker-compose實(shí)現(xiàn)容器任務(wù)編排的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01docker各種報(bào)錯(cuò)解決方案小結(jié)
最近在學(xué)習(xí)docker的時(shí)候遇到了不少問題,索性給大家整理下,下面這篇文章主要給大家介紹了關(guān)于docker各種報(bào)錯(cuò)解決的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05docker安裝后導(dǎo)致的網(wǎng)絡(luò)問題及解決
這篇文章主要介紹了docker安裝后導(dǎo)致的網(wǎng)絡(luò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11docker中容器的網(wǎng)絡(luò)配置常用命令詳解
這篇文章主要介紹了docker中容器的網(wǎng)絡(luò)配置常用命令詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Docker快速部署主流腳本語言JavaScript的全過程
JavaScript是目前所有主流瀏覽器上唯一支持的腳本語言,這也是早期JavaScript的唯一用途,下面這篇文章主要給大家介紹了關(guān)于Docker快速部署主流腳本語言JavaScript的相關(guān)資料,需要的朋友可以參考下2023-02-02docker容器中登陸并操作postgresql的實(shí)現(xiàn)
本文主要介紹了docker容器中登陸并操作postgresql的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟
這篇文章主要介紹了基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01