天天看點

使用registry搭建docker私服倉庫一、拉取 registry鏡像二、根據鏡像啟動一個容器三、随機通路一個私服的接口,看是否可以傳回資料四、推送一個鏡像到自己的私服中五、注意事項

使用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
           
  • -p 5000:5000

    将容器内部的5000端口暴露給外部的5000端口
  • --restart=always

    表示遇到錯誤自動重新開機
  • --name

    執行啟動後容器的名字
  • -v registry-huan:/var/lib/registry

    表示将容器内部的資料挂載到自己的資料卷

    registry-huan

三、随機通路一個私服的接口,看是否可以傳回資料

http://47.101.130.164:5000/v2/_catalog
           
使用registry搭建docker私服倉庫一、拉取 registry鏡像二、根據鏡像啟動一個容器三、随機通路一個私服的接口,看是否可以傳回資料四、推送一個鏡像到自己的私服中五、注意事項

注意:

這個

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檔案中增加如下配置
使用registry搭建docker私服倉庫一、拉取 registry鏡像二、根據鏡像啟動一個容器三、随機通路一個私服的接口,看是否可以傳回資料四、推送一個鏡像到自己的私服中五、注意事項

--insecure-registry 47.101.130.164:5000

2、重新啟動docker

systemctl daemon-reload

systemctl restart docker.service

3、再次執行 docker push xxx 就會發現可以推送了

4、從私服中拉取鏡像

docker pull 47.101.130.164:5000/hello-world-new
           
使用registry搭建docker私服倉庫一、拉取 registry鏡像二、根據鏡像啟動一個容器三、随機通路一個私服的接口,看是否可以傳回資料四、推送一個鏡像到自己的私服中五、注意事項

五、注意事項

1、如果要推送到自己的私服中,那麼在給鏡像打tag時需要以

ip[域名]:端口

作為字首

2、如果推送鏡像失敗,可能需要修改

/usr/lib/systemd/system/docker.service

配置檔案

3、

47.101.130.164

為我docker registry 所在的伺服器的位址

4、本地操作使用docker的版本為

19.03.1

[ro[email protected] ~]# docker -v
Docker version 19.03.1, build 74b1e89