Docker如何將本地鏡像推送到私有庫
1.下載鏡像支持
Docker Registry鏡像是使用官方鏡像來啟動私有倉庫
docker pull registry#拉取鏡像 docker images#查看鏡像
使用如上命令來拉取鏡像
2.運(yùn)行鏡像
運(yùn)行私有庫Registry,相當(dāng)于你在本地創(chuàng)建了一個私有庫,即Docker hub。
默認(rèn)情況,倉庫被創(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ī)的目錄,也許這個目錄你并沒有一開始就創(chuàng)建,無需擔(dān)心,在執(zhí)行這個命令后,會自動將這個目錄創(chuàng)建好。/tmp/registry是容器內(nèi)的目錄。
3.案例
案例將以ubuntu為模板,演示如何將鏡像推送至私有庫與獲取。
(1)從倉庫獲取ubuntu鏡像到本地并運(yùn)行。
docker pull ubuntu
如果沒有特殊版本要求,那直接運(yùn)行pull命令拉取鏡像會直接從倉庫獲取最新版的鏡像到本地。
(2)運(yùn)行鏡像
我們先將鏡像運(yùn)行,然后進(jìn)入容器。原始的ubuntu是不支持ifconfig的命令,所以我們可以以這個來分辨鏡像的區(qū)別。
docker images#查看是否成功拉取ubuntu docker run -it ubuntu /bin/bash#運(yùn)行ubuntu鏡像成為一個容器并進(jìn)入 apt-get update apt-get install net-tools#這兩行命令是讓這個容器擁有支持ifconfig命令的環(huán)境
我們還可以先驗(yàn)證一下我們私有倉庫中是否有鏡像。
curl -XGET http://192.168.244.188:5000/v2/_catalog
(3)打包-上傳-查看-拉取
每個鏡像都不一樣,所以倉庫一般會設(shè)置統(tǒng)一的規(guī)范,在上傳鏡像前,我們需要對鏡像進(jìn)行打包。
docker tag ubuntu 192.168.244.188:5000/myubuntu:1.1#打包 docker images#查看是否打包成功
公式是:docker tag (鏡像名):Tag Host:port/Repository:Tag
溫馨提示:每個人的host主機(jī)ip地址都不一樣,所以請不要照著復(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ù),啟動registry服務(wù)。因?yàn)閐ocker服務(wù)重啟,所以默認(rèn)registry服務(wù)會停止。
systemctl restart docker.service#重啟服務(wù) docker start (registry進(jìn)程ID)#啟動registry服務(wù)
現(xiàn)在,我們可以開始推送鏡像到我們的私有庫中了。
docker push 192.168.244.188:5000/myubuntu:1.1
驗(yàn)證看看我們是否上傳成功。
curl -XGET http://192.168.244.188:5000/v2/_catalog
到了檢驗(yàn)成果的時候了,首先我們移除本身的ubutun鏡像,然后再去拉取我們上傳的鏡像,如果我們的實(shí)驗(yàn)成功,那么我們拉取的ubuntu鏡像是可以直接進(jìn)行ifconfig命令的。
docker pull 192.168.244.188/myubuntu:1.1#拉取鏡像 docker run -it <容器id> /bin/bash
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker搭建簡單的應(yīng)用棧與容器Hello World訪問詳解
這篇文章主要介紹了Docker搭建簡單的應(yīng)用棧與容器Hello World訪問,結(jié)合實(shí)例形式詳細(xì)分析了Docker應(yīng)用容器棧的獲取、互聯(lián)、啟動、配置以及應(yīng)用訪問測試相關(guān)操作技巧,需要的朋友可以參考下2018-06-06docker完整配置nginx+php+mysql的方法步驟
這篇文章主要介紹了docker完整配置nginx+php+mysql的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02docker 動態(tài)映射運(yùn)行的container端口實(shí)例詳解
這篇文章主要介紹了 docker 動態(tài)映射運(yùn)行的container端口實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-10-10解決docker pull被復(fù)位出現(xiàn)的問題
這篇文章主要介紹了解決docker pull被復(fù)位出現(xiàn)的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09Docker中Nginx反向代理的實(shí)現(xiàn)步驟
為了安全考慮,我們一般會設(shè)置反向代理,用來屏蔽應(yīng)用程序真實(shí)的IP和端口號,本文主要介紹了Docker中Nginx反向代理的實(shí)現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-03-03docker 指定IP地址、與主機(jī)同網(wǎng)段IP
這篇文章主要介紹了docker 指定IP地址、與主機(jī)同網(wǎng)段IP,非常具有實(shí)用價值,需要的朋友可以參考下2017-05-05