目錄docker
Docker搭建Nexus私有倉庫... 1npm
1、安裝部署... 1json
一、安裝... 2ruby
二、訪問網頁端... 2maven
2、配置使用... 2工具
一、建立本地倉庫... 2this
二、docker配置... 3spa
三、上傳、拉取鏡像... 43d
四、上傳、拉取鏡像... 4代理
五、權限管理... 5
Nexus3是Sonatype提供的倉庫管理平臺,Nuexus Repository OSS3可以支持Maven、npm、Docker、YUM、Helm等格式數據的存儲和發佈;而且可以與Jekins、SonaQube和Eclipse等工具進行集成。Nexus3支持做爲宿主和代理存儲庫的Docker存儲庫,能夠直接將這些存儲庫暴露給客戶端工具;也能夠以存儲庫組的方式暴露給客戶端工具,存儲庫組是合併了多個存儲庫的內容的存儲庫,可以經過一個URL將多個存儲庫暴露給客戶端工具,從而便於用戶的使用。經過nexus3自建可以有效減小訪問獲取鏡像的時間和對帶寬使用,並可以經過自有的鏡像倉庫共享企業本身的鏡像。在本文中,採用Docker方式安裝部署Nexus3。
注意:目前的版本有2.x和 3.x ,3.x的支持範圍更廣,支持ruby和docker。若是單純的maven私服,建議使用2.x
[root@localhost ~]# docker run -d --user root -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -v /opt/nexus-data:/nexus-data --name nexus3 sonatype/nexus3:3.14.0
#映射端口對應的用途:
8081:能夠經過http訪問nexus應用
8082:docker(hosted)私有倉庫,能夠pull和push
8083:docker(proxy)代理遠程倉庫,只能pull
8084:docker(group)私有倉庫和代理的組,只能pull
#使用參數 -v 創建宿主機與Docker目錄映射關係,/nexus-data:docker裏存nexus數據目錄,因此將數據目錄存放到宿主機/opt/nexus-data
http://192.168.100.163:8081 默認帳號密碼: admin/admin123
在建立鏡像倉庫的頁面中,設置鏡像倉庫的相關信息,包括名稱、HTTP端口、是否容許匿名拉取鏡像等信息。這裏須要注意的是,此處的HTTP端口(此處的值爲8082)很重要,後續拉取和推送進行是使用此端口進行的,而不是nexus自己對外暴露的端口。
在/etc/docker/daemon.json文件中添加下面的內容:
[root@localhost ~]# cat /etc/docker/daemon.json
{
"insecure-registries":["192.168.100.163:8082"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker info
Insecure Registries:
192.168.100.163:8082 #生效了
127.0.0.0/8
[root@localhost ~]# docker login 192.168.100.163:8082
Username: admin
Password: admin123
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded #登陸成功
注意:登陸時,須要提供用戶名和密碼。認證的信息會被保存在~/.docker/config.json文件,在後續與私有鏡像倉庫交互時就能夠被重用,而不須要每次都進行登陸認證。
[root@localhost ~]# docker pull hello-world
[root@localhost ~]# docker tag hello-world 192.168.100.163:8082/helloworld:1.0
[root@localhost ~]# docker push 192.168.100.163:8082/helloworld:1.0
[root@localhost ~]# docker pull 192.168.100.163:8082/helloworld:1.0 #拉取鏡像
1.0: Pulling from helloworld
1b930d010525: Pull complete
Digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
Status: Downloaded newer image for 192.168.100.163:8082/helloworld:1.0
192.168.100.163:8082/helloworld:1.0
建立用戶:
默認是使用admin登陸的,權限過高,能夠給用戶單首創建帳號
創建 docker 角色組,權限爲 nx-repository-view-docker-*-*
創建新用戶,並加入爲 docker角色組
登陸