Docker如何將本地鏡像推送到私有庫(kù)
1.下載鏡像支持
Docker Registry鏡像是使用官方鏡像來(lái)啟動(dòng)私有倉(cāng)庫(kù)
docker pull registry#拉取鏡像 docker images#查看鏡像
使用如上命令來(lái)拉取鏡像

2.運(yùn)行鏡像
運(yùn)行私有庫(kù)Registry,相當(dāng)于你在本地創(chuàng)建了一個(gè)私有庫(kù),即Docker hub。
默認(rèn)情況,倉(cāng)庫(kù)被創(chuàng)建在容器的/var/lib/registry目錄下。
我建議自行使用容器卷映射,可以有利于宿主機(jī)的協(xié)調(diào)管理。
docker run -d -p 5000:5000 -v /wang/myregistry/:/tmp/registry --privileged=true registry
/wang/myregistry是宿主機(jī)的目錄,也許這個(gè)目錄你并沒(méi)有一開(kāi)始就創(chuàng)建,無(wú)需擔(dān)心,在執(zhí)行這個(gè)命令后,會(huì)自動(dòng)將這個(gè)目錄創(chuàng)建好。/tmp/registry是容器內(nèi)的目錄。

3.案例
案例將以u(píng)buntu為模板,演示如何將鏡像推送至私有庫(kù)與獲取。
(1)從倉(cāng)庫(kù)獲取ubuntu鏡像到本地并運(yùn)行。
docker pull ubuntu
如果沒(méi)有特殊版本要求,那直接運(yùn)行pull命令拉取鏡像會(huì)直接從倉(cāng)庫(kù)獲取最新版的鏡像到本地。
(2)運(yùn)行鏡像
我們先將鏡像運(yùn)行,然后進(jìn)入容器。原始的ubuntu是不支持ifconfig的命令,所以我們可以以這個(gè)來(lái)分辨鏡像的區(qū)別。
docker images#查看是否成功拉取ubuntu docker run -it ubuntu /bin/bash#運(yùn)行ubuntu鏡像成為一個(gè)容器并進(jìn)入 apt-get update apt-get install net-tools#這兩行命令是讓這個(gè)容器擁有支持ifconfig命令的環(huán)境


我們還可以先驗(yàn)證一下我們私有倉(cāng)庫(kù)中是否有鏡像。
curl -XGET http://192.168.244.188:5000/v2/_catalog

(3)打包-上傳-查看-拉取
每個(gè)鏡像都不一樣,所以倉(cāng)庫(kù)一般會(huì)設(shè)置統(tǒng)一的規(guī)范,在上傳鏡像前,我們需要對(duì)鏡像進(jìn)行打包。
docker tag ubuntu 192.168.244.188:5000/myubuntu:1.1#打包 docker images#查看是否打包成功
公式是:docker tag (鏡像名):Tag Host:port/Repository:Tag
溫馨提示:每個(gè)人的host主機(jī)ip地址都不一樣,所以請(qǐng)不要照著復(fù)制。

我們需要修改主機(jī)的配置文件以讓其支持http。
vi /etc/docker/daemon.json#修改配置文件
{
"registry-mirrors":["https://aa25jngu.mirror.aliyuncs.com"],
"insecure-registries":["192.168.244.188:5000"]
} #增添內(nèi)容
在修改完配置文件后,重啟docker服務(wù),啟動(dòng)registry服務(wù)。因?yàn)閐ocker服務(wù)重啟,所以默認(rèn)registry服務(wù)會(huì)停止。
systemctl restart docker.service#重啟服務(wù) docker start (registry進(jìn)程ID)#啟動(dòng)registry服務(wù)
現(xiàn)在,我們可以開(kāi)始推送鏡像到我們的私有庫(kù)中了。
docker push 192.168.244.188:5000/myubuntu:1.1

驗(yàn)證看看我們是否上傳成功。
curl -XGET http://192.168.244.188:5000/v2/_catalog

到了檢驗(yàn)成果的時(shí)候了,首先我們移除本身的ubutun鏡像,然后再去拉取我們上傳的鏡像,如果我們的實(shí)驗(yàn)成功,那么我們拉取的ubuntu鏡像是可以直接進(jìn)行ifconfig命令的。
docker pull 192.168.244.188/myubuntu:1.1#拉取鏡像 docker run -it <容器id> /bin/bash




總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker多架構(gòu)鏡像構(gòu)建全過(guò)程
文章介紹了如何使用DockerBuildx工具實(shí)現(xiàn)一次構(gòu)建同時(shí)支持ARM64和AMD64平臺(tái)的Docker鏡像,并詳細(xì)描述了構(gòu)建過(guò)程、技術(shù)方案和問(wèn)題排查,最終,通過(guò)腳本使用指南和常見(jiàn)問(wèn)題解答,幫助用戶更好地理解和使用該工具2026-01-01
CentOS?7.9?安裝?docker20.10.12的過(guò)程解析
這篇文章主要介紹了CentOS?7.9?安裝?docker20.10.12?的相關(guān)資料,安裝軟件包時(shí)卸載舊軟件包,如果已經(jīng)安裝這些程序,請(qǐng)卸載他們以及相關(guān)的依賴項(xiàng),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
Docker自動(dòng)部署Apache Tomcat的方法
這篇文章主要介紹了Docker自動(dòng)部署Apache Tomcat的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
使用Docker創(chuàng)建FTP服務(wù)器的過(guò)程解析
這篇文章主要介紹了使用Docker創(chuàng)建FTP服務(wù)器的過(guò)程解析,使用?Docker?搭建?FTP?服務(wù),不僅十分簡(jiǎn)單,而且可以對(duì)宿主機(jī)有一定的隔離,對(duì)Docker創(chuàng)建FTP服務(wù)器的過(guò)程感興趣的朋友一起看看吧2022-04-04
Centos 7中Docker私有倉(cāng)庫(kù)的搭建方法
本篇文章主要介紹了Centos 7中Docker私有倉(cāng)庫(kù)的搭建方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04

