使用 Nexus 建立 Docker 倉庫

使用 Docker 官方的 Registry 建立的倉庫,面臨着這樣的問題,好比刪除鏡像後空間默認不會回收,形成空間被佔用。比較常見的作法是使用 Nexus 來管理企業的工具包。前端

Nexus 不只能夠建立 Docker 倉庫,也能夠 NPM、Maven 等多種類型的倉庫。docker

啓動 Nexus 容器

$ docker run -d --name nexus3 --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    --mount src=nexus-data,target=/nexus-data \
    sonatype/nexus3
Unable to find image 'sonatype/nexus3:latest' locally
latest: Pulling from sonatype/nexus3
c65691897a4d: Pull complete
641d7cc5cbc4: Pull complete
c508b13320cd: Pull complete
79e3bf9d3132: Pull complete
Digest: sha256:2c33632ccd8f8c5f9023a3d7f5f541e271833e402219f8c5a83a29d1721457ca
Status: Downloaded newer image for sonatype/nexus3:latest
f637e039214978f8aac41e621e51588bd8cd8438055498c4060fbaf87799e64f
複製代碼

其中 8081 爲 Nexus 的訪問端口,8082 爲倉庫的端口,網上大部分文章並無加上 8082 端口的映射,致使我在測試的時候卡了好久。瀏覽器

稍等一兩分鐘,瀏覽器打開 domain:8081bash

點擊右上角 Sign in 進行登陸,初始帳號爲 admin,密碼能夠經過 exec 命令進入容器內,根據提示的路徑查看初始密碼。dom

登陸頁

進入容器查看初始密碼工具

$ docker exec -it f637 /bin/bash
bash-4.4$ vi /nexus-data/admin.password
複製代碼

登錄後會被要求修改密碼,之後將使用這密碼。測試

建立倉庫

點擊導航的齒輪按鈕進入設置頁面,進入 Repository->Repositories 點擊 Create repository 選擇 docker (hosted)ui

docker (hosted) 爲本地倉庫,docker (proxy) 爲代理倉庫,docker (group) 爲聚合倉庫,本文只介紹本地倉庫,若是有興趣也能夠到網上查找另外兩種倉庫的用法。spa

建立倉庫

只須要填好上圖中紅框的部分便可,其中 Name 爲倉庫名,HTTP 的輸入框則是填寫端口號 8082,寫好以後滑到頁面底部,點擊 Create repository 即建立倉庫。3d

添加訪問權限

菜單 Security->Realms 把 Docker Bearer Token Realm 移到右邊的框中保存。

添加用戶規則:菜單 Security->Roles->Create role 在 Privlleges 選項搜索 docker 把相應的規則移動到右邊的框中而後保存。

添加用戶:菜單 Security->Users->Create local user 在 Roles 選項中選中剛纔建立的規則移動到右邊的窗口保存。

登陸倉庫

由於是建立的倉庫是用 HTTP 的方式訪問的,因此在登陸前須要修改 Docker 配置中的 Daemon

{ "insecure-registries": ["domain:8082"] }

$ docker login domain:8082
Username: yourName
Password:
Login Succeeded
複製代碼

上傳倉庫、下載倉庫、搜索倉庫 這些內容與上一篇文章中的一致,這裏就再也不贅述了。

其中須要注意的點爲啓動 Nexus 時,須要把倉庫的端口一塊兒映射到宿主機中。


若是你喜歡個人文章,但願能夠關注一下個人公衆號【前端develop】

前端develop
相關文章
相關標籤/搜索