Docker 搭建私有倉庫

[TOC]

一、前提和準(zhǔn)備條件

搭建私有倉庫需要以下條件:

  • 1.已安裝Docker服務(wù)的服務(wù)端
  • 2.測試docker鏡像拉取的客戶端
  • 3.2臺(tái)測試機(jī)都需安裝docker服務(wù)
  • 4.配置好了鏡像加速信息
機(jī)器名 ip 功能
docker-registry 10.18.33.90 docker私有倉庫服務(wù)器
docker-app 10.18.33.88 運(yùn)行docker服務(wù)的普通服務(wù)器

二善玫、docker-registry搭建私有倉庫

1.拉取倉庫鏡像

在docker-registry[10.18.33.90]服務(wù)器執(zhí)行一下命令,拉取倉庫的鏡像:

[root@localhost DockerDB]# docker pull registry

2.運(yùn)行私有倉庫

在docker-registry[10.18.33.90]服務(wù)器執(zhí)行一下命令,來啟動(dòng)一個(gè)私有倉庫的容器

docker run -d -v /registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

執(zhí)行成功后饼疙,查看容器是否啟動(dòng)成功

[root@localhost DockerDB]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
edd6c0d7ca9b        registry:latest     "/entrypoint.sh /etc…"   3 seconds ago       Up 2 seconds        0.0.0.0:5000->5000/tcp   registry

如果成功執(zhí)行其弊,則表示我們的docker私有倉庫搭建成功。

下面對(duì)這條命令的部分內(nèi)容做下說明椒拗。

/registry表示宿主機(jī)目錄舒帮,該目錄如果不存在會(huì)自動(dòng)創(chuàng)建。

docker -v 宿主機(jī)目錄:容器目錄

解釋:

把宿主機(jī)的目錄掛載到容器中

或者把docker 容器中某目錄的數(shù)據(jù) 加載到 宿主機(jī)的某個(gè)目錄

這樣做的目的是為了防止docker私有倉庫這個(gè)容器被刪除時(shí)陡叠,倉庫里的鏡像也會(huì)被刪除玩郊。

3.查詢當(dāng)前私有倉庫信息

查詢一下當(dāng)前建立的私有倉庫的信息,windows請(qǐng)直接訪問以下地址:

http://10.18.33.90:5000/v2/_catalog

結(jié)果信息如下:


image

如果在Linux上枉阵,請(qǐng)運(yùn)行如下命令來獲得當(dāng)前私有倉庫信息:

[root@localhost ~]# curl -X GET http://10.18.33.90:5000/v2/_catalog
{"repositories":[]}

第一次建立私有倉庫译红,查詢結(jié)果應(yīng)該是沒有鏡像信息的。

三兴溜、docker-app注冊(cè)私有倉庫信息

1.daemon.json配置文件

  • linux配置

修改docker的配置文件daemon.json文件添加私有倉庫信息侦厚,daemon.json在/etc/docker/目錄下
添加如下信息:

"insecure-registries":["10.18.33.90:5000"]

其中 IP為docker-registry的IP,5000端口位registry容器映射對(duì)外的端口
完整的daemon.json信息如下:

{
  "registry-mirrors": ["https://7e2zsv7s.mirror.aliyuncs.com"],
  "insecure-registries":["10.18.33.90:5000"]
}

重啟docker服務(wù)

[root@localhost docker]# systemctl daemon-reload;
[root@localhost docker]# systemctl restart docker;
  • windows配置
    在docker圖標(biāo)右鍵拙徽,打開settings刨沦,定位到Daemon菜單下:


    windows修改配置

    打開Advanced,添加docker私有倉庫信息膘怕,并點(diǎn)擊應(yīng)用想诅,等待docker重啟成功。

四、推送鏡像到私有倉庫

推送鏡像到私有倉庫来破,可以是已有鏡像的重新封裝篮灼,也可以是你的項(xiàng)目鏡像,前提是你已經(jīng)正確構(gòu)建了一個(gè)可用的鏡像徘禁。

1.重命名已經(jīng)鏡像信息Tag標(biāo)簽

列舉已構(gòu)建成功的鏡像信息:

PS E:\WorkSpace-GW\image-gateway\mysql> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
db                  0.0.1               3924615d26ec        3 minutes ago       366MB
mariadb             latest              b468922dbbd7        About an hour ago   366MB
PS E:\WorkSpace-GW\image-gateway\mysql>

將已有的鏡像信息重新Tag命名

PS E:\WorkSpace-GW\image-gateway\mysql> docker tag 3924615d26ec 10.18.33.90:5000/db:v1.0

TIPS:

重命名鏡像必須遵循: 私有倉庫IP:端口/倉庫名

2.將重名的鏡像推送到私有倉庫

執(zhí)行如下命令推送鏡像到私有倉庫

PS E:\WorkSpace-GW\image-gateway\mysql> docker push 10.18.33.90:5000/db

推送成功后訪問倉庫诅诱,查看鏡像是否推送成功,訪問私有鏡像倉庫服務(wù)

http://10.18.33.90:5000/v2/_catalog

可以看到db已經(jīng)被推送到了私有倉庫

倉庫信息

五送朱、從私有倉庫拉取鏡像

測試docker-app客戶端拉取鏡像娘荡,先刪除客戶端docker的相關(guān)的鏡像內(nèi)容,如下圖所示:

PS E:\WorkSpace-GW\image-gateway\mysql> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
PS E:\WorkSpace-GW\image-gateway\mysql>

1.拉取一個(gè)私有倉庫的鏡像

執(zhí)行如下命令驶沼,拉取剛推送私有鏡像 db并創(chuàng)建一個(gè)容器

PS E:\WorkSpace-GW\image-gateway\mysql> docker run --name gatewaydb -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -idt 10.18.33.90:5000/db:v1.0
2.查看容器啟動(dòng)情況和進(jìn)入容器

查看容器啟動(dòng)情況

PS E:\WorkSpace-GW\image-gateway\mysql> docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED              STATUS              PORTS                    NAMES
a9a3ec4f309e        10.18.33.90:5000/db:v1.0   "docker-entrypoint.s…"   About a minute ago   Up 58 seconds       0.0.0.0:3307->3306/tcp   gatewaydb

進(jìn)入容器查看啟動(dòng)情況:

PS E:\WorkSpace-GW\image-gateway\mysql> docker exec -it gatewaydb /bin/bash
root@a9a3ec4f309e:/#
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末它改,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子商乎,更是在濱河造成了極大的恐慌央拖,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹉戚,死亡現(xiàn)場離奇詭異鲜戒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抹凳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門遏餐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赢底,你說我怎么就攤上這事失都。” “怎么了幸冻?”我有些...
    開封第一講書人閱讀 167,755評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵粹庞,是天一觀的道長。 經(jīng)常有香客問我洽损,道長庞溜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評(píng)論 1 296
  • 正文 為了忘掉前任碑定,我火速辦了婚禮流码,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘延刘。我一直安慰自己漫试,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評(píng)論 6 397
  • 文/花漫 我一把揭開白布碘赖。 她就那樣靜靜地躺著驾荣,像睡著了一般外构。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秘车,一...
    開封第一講書人閱讀 52,166評(píng)論 1 308
  • 那天典勇,我揣著相機(jī)與錄音劫哼,去河邊找鬼叮趴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛权烧,可吹牛的內(nèi)容都是我干的眯亦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼般码,長吁一口氣:“原來是場噩夢啊……” “哼妻率!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起板祝,我...
    開封第一講書人閱讀 39,664評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤宫静,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后券时,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孤里,經(jīng)...
    沈念sama閱讀 46,205評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評(píng)論 3 340
  • 正文 我和宋清朗相戀三年橘洞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捌袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,435評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炸枣,死狀恐怖虏等,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情适肠,我是刑警寧澤霍衫,帶...
    沈念sama閱讀 36,126評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站侯养,受9級(jí)特大地震影響慕淡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沸毁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評(píng)論 3 333
  • 文/蒙蒙 一峰髓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧息尺,春花似錦携兵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春并级,著一層夾襖步出監(jiān)牢的瞬間拂檩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工嘲碧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稻励,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,818評(píng)論 3 376
  • 正文 我出身青樓愈涩,卻偏偏與公主長得像望抽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子履婉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容