內網環境下registry搭建步驟詳解

背景

在實際的開發運維過程中,經常需要使用鏡像倉庫的情況,雖然阿裡雲、騰訊雲等都提供瞭帶有免費額度的鏡像倉庫服務,但是由於賬號等問題,我們還是需要自己搭建一個鏡像倉庫服務,供內網環境下使用。

大致的步驟:

  • 準備docker環境
  • 配置非http訪問( Insecure Registries)
  • 重新傢在docker
  • 啟動registry
  • 啟動registry-web

docker環境

假設你的本地已經裝好瞭docker-ce,並且可以正常運行。

參考:

docker desktop for windows
docker desktop for mac
apt-get install docker
yum install docker

配置http可訪問

默認的docker與docker registry交互是需要在https的環境下交互的,但是大多數情況下我們的服務是在內網的安全環境下的,我們隻需要使用http即可。 幸好docker為我們預留瞭可以使用http的方法。 那就是需要修改deamon.json文件。

如果你是mac或者是windows的desktop端,需要點擊設置,修改docker engine裡的設置:

添加圖中框起來的代碼:

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

註:ip是下面registry服務部署的機器ip 5000時registry服務默認的暴露端口 我們可以自行修改

如果您是linux環境,需要修改/etc/docker/deamon.json文件,如果沒有這個文件,可以新建。

重新加載docker

desktop在配置完之後,我們可以直接點擊Apply & Restart按鈕進行重啟。 linux環境下

sudo systemctl status docker
sudo systemctl reload docker
sudo systemctl restart docker

其中第二個命令執行完即可,如果未生效,可以繼續執行第三個命令。 第三個命令執行完之後,那些容器的啟動策略不是always的就會停掉。所以我們要慎重使用這個命令。

啟動registry

設定當前目錄為工作環境,創建config.yml文件如下:

version: 0.1
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

執行命令:

mkdir data
docker run -d \
    --name registry-server \
    --restart=always \
    -p 5000:5000 \
    -v `pwd`/data:/var/lib/registry \
    -v `pwd`/config.yml:/etc/docker/registry/config.yml \
    registry

訪問ip:5000/v2/_catalog即為部署成功

測試:

docker pull alpine
docker tag alpine:latest 192.168.10.206:5000/alpine:latest
docker push 192.168.10.206:5000/alpine:latest

啟動registry-web

由於官方的registry隻是提供瞭api,沒有一個圖形化界面供顯示和操作,所以我們可以利用第三方提供的鏡像啟動一個圖形化頁面。

進入一個工作目錄。 創建config.yml文件

registry:
  # Docker registry url
     url: http://192.168.10.206:5000/v2
     # Docker registry fqdn
     name: localhost:5000
     # To allow image delete, should be false
     readonly: false
     auth:
     # Disable authentication
         enabled: false

啟動容器

docker run -d \
    -p 8080:8080 \
    --name registry-web \
    --restart=always \
    -v $(pwd)/config.yml:/conf/config.yml:ro \
    hyper/docker-registry-web

訪問ip:8080,看到如下頁面,大功告成。

以上就是內網環境下registry搭建步驟詳解的詳細內容,更多關於內網環境registry搭建的資料請關註WalkonNet其它相關文章!

推薦閱讀: