使用registry搭建docker私服倉庫
- 一、拉取 registry鏡像
- 二、根據鏡像啟動一個容器
-
- 1、建立一個資料卷
- 2、啟動容器
- 三、随機通路一個私服的接口,看是否可以傳回資料
- 四、推送一個鏡像到自己的私服中
-
- 1、拉取一個 hello-world 鏡像
- 2、給這個鏡像打一個 tag
- 3、推送鏡像到自己的私服中
- 4、從私服中拉取鏡像
- 五、注意事項
-
- 1、如果要推送到自己的私服中,那麼在給鏡像打tag時需要以 `ip[域名]:端口` 作為字首
- 2、如果推送鏡像失敗,可能需要修改 `/usr/lib/systemd/system/docker.service` 配置檔案
- 3、`47.101.130.164` 為我docker registry 所在的伺服器的位址
- 4、本地操作使用docker的版本為 `19.03.1`
預設情況下,我們拉取docker鏡像大多都是從 dockerhub 上拉取的,但有些時候有些鏡像是我們自己内部建構的,不想公開給别人使用,那麼這個時候就需要建構一個自己的鏡像私服了,而 docker 正好提供了,registry鏡像,正好可以用來建構自己的私服。
一、拉取 registry鏡像
docker pull registry
二、根據鏡像啟動一個容器
1、建立一個資料卷
docker volume create registry-huan
2、啟動容器
docker run -d -p 5000:5000 --restart=always -v registry-huan:/var/lib/registry --name registry-huan registry
-
将容器内部的5000端口暴露給外部的5000端口-p 5000:5000
-
表示遇到錯誤自動重新開機--restart=always
-
執行啟動後容器的名字--name
-
表示将容器内部的資料挂載到自己的資料卷-v registry-huan:/var/lib/registry
中registry-huan
三、随機通路一個私服的接口,看是否可以傳回資料
http://47.101.130.164:5000/v2/_catalog
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6tGVPhHOxIWMoJDWxolMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1cDN3UDNxETMxITOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
注意:
這個
repositories
中之是以會存在資料,是因為我之前上傳一個 hello-world 的鏡像
四、推送一個鏡像到自己的私服中
1、拉取一個 hello-world 鏡像
docker pull hello-world
2、給這個鏡像打一個 tag
docker tag hello-world 47.101.130.164:5000/hello-world
注意:
1、
47.101.130.164
這個為我 registry 所在的機器的ip位址
2、
5000
為啟動 registry 對外暴露的端口
3、推送鏡像到自己的私服中
docker push 47.101.130.164:5000/hello-world
- 在這一步可能會報如下錯誤
使用registry搭建docker私服倉庫一、拉取 registry鏡像二、根據鏡像啟動一個容器三、随機通路一個私服的接口,看是否可以傳回資料四、推送一個鏡像到自己的私服中五、注意事項 - 解決方案如下
描述 | 操作 |
---|---|
1、在 vim /usr/lib/systemd/system/docker.service檔案中增加如下配置 | |
2、重新啟動docker | |
3、再次執行 docker push xxx 就會發現可以推送了 |
4、從私服中拉取鏡像
docker pull 47.101.130.164:5000/hello-world-new
五、注意事項
1、如果要推送到自己的私服中,那麼在給鏡像打tag時需要以 ip[域名]:端口
作為字首
ip[域名]:端口
2、如果推送鏡像失敗,可能需要修改 /usr/lib/systemd/system/docker.service
配置檔案
/usr/lib/systemd/system/docker.service
3、 47.101.130.164
為我docker registry 所在的伺服器的位址
47.101.130.164
4、本地操作使用docker的版本為 19.03.1
19.03.1
[ro[email protected] ~]# docker -v
Docker version 19.03.1, build 74b1e89