搭建Nexus Repository包管理系統
下載安裝程序
將下載后的文件傳輸到服務器上
#修改配置文件
vi /etc/security/limits.conf
#添加
* soft nofile 65536
#修改服務配置
vi /etc/systemd/system.conf
#修改
DefaultLimitNOFILE=65536
#重啟
reboot
#查看結果
ulimit -n
#將當前目標下的文件上傳到目標服務器的指定路徑
scp nexus-3.23.0-03-unix.tar root@192.168.0.5:/opt/
#解壓
tar -xvf nexus-3.23.0-03-unix.tar
#做一個軟鏈接方便訪問和更新
ln -s /opt/nexus-3.23.0-03/ /nexus
#修改運行用戶
vi /nexus/bin/nexus.rc
#修改運行用戶,除非自己個人使用否則不要用root用戶
run_as_user="root"
ln -s /nexus/bin/nexus /etc/init.d/nexus
#init.d設置
cd /etc/init.d
chkconfig --add nexus
chkconfig --levels 345 nexus on
service nexus start
#創建Nexus服務
vi /etc/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/nexus/bin/nexus start
ExecStop=/nexus/bin/nexus stop
User=root
Restart=on-abort
TimeoutSec=600
[Install]
WantedBy=multi-user.target
如果沒有安裝JAVA,請看:
安裝Java1.8
#重新加載服務
systemctl daemon-reload
#開機啟動
systemctl enable nexus.service
#運行服務
systemctl start nexus.service
#查看日志
tail -f /opt/sonatype-work/nexus3/log/nexus.log
訪問http://192.168.0.5:8081 進入管理界面。
創建YUM倉庫
Nexus服務器域名和端口:repo.bluersw.com:8081
Proxy倉庫:
- 倉庫名稱:aliyun-yum-proxy(屬於repo-bluersw分組)
- 倉庫類型:proxy
- 遠程倉庫地址:http://mirrors.aliyun.com/centos/
Group倉庫:
- 倉庫名稱:repo-bluersw(含多個proxy倉庫)
- 倉庫類型:group
- 對外地址:http://repo.bluersw.com:8081/repository/repo-bluersw/
客戶端配置:
#備份
cd /etc/yum.repos.d/
mkdir bak
cp *.repo bak/
vi /etc/yum.repos.d/CentOS-Base.repo
修改CentOS-Base文件內容:
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://repo.bluersw.com:8081/repository/repo-bluersw/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://repo.bluersw.com:8081/repository/repo-bluersw/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://repo.bluersw.com:8081/repository/repo-bluersw/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://repo.bluersw.com:8081/repository/repo-bluersw/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum clean all
yum makecache
#更新系統第一次會比較慢
yum update -y
下載的RPM包都存儲在Nexus服務器上,以后其他服務器照此配置就不用從外網下載了。
創建Docker倉庫
Proxy倉庫:
- 倉庫名稱:hub-docker-proxy
- 倉庫類型:proxy
- 遠程倉庫地址:https://registry-1.docker.io
- Repository Connectors:不創建(由Group倉庫負責)
- Allow anonymous docker pull ( Docker Bearer Token Realm required ):true(勾選)
- Enable Docker V1 API:勾選
- Docker Index:Use Docker Hub
Hosted倉庫:
- 倉庫名稱:my-docker-host
- 倉庫類型:hosted
- Repository Connectors:HTTP 8082端口(負責Push Image)
- Allow anonymous docker pull ( Docker Bearer Token Realm required ):true(勾選)
- Enable Docker V1 API:勾選
- 對外地址:http://repo.bluersw.com:8082
Group倉庫:
- 倉庫名稱:docker-bluersw(含hub-docker-proxy和my-docker-host)
- 倉庫類型:group
- Repository Connectors:HTTP 8083端口(負責Pull Image)
-
- Allow anonymous docker pull ( Docker Bearer Token Realm required ):true(勾選)
- 對外地址:http://repo.bluersw.com:8083
group類型的Docker倉庫只能pull不能push。
在Security中打開Realms界面,激活Docker Bearer Token Realm 選項。
客戶端配置:
vi /etc/docker/daemon.json
修改Docker的daemon配置文件,添加上述兩個Docker私服地址。
{
"insecure-registries": ["http://repo.bluersw.com:8082","http://repo.bluersw.com:8083"]
}
#重啟服務
systemctl restart docker
#登錄
docker login http://repo.bluersw.com:8082
docker login http://repo.bluersw.com:8083
#使用代理服務器下載鏡像,鏡像會存在代理服務器上供其他人下載
docker pull repo.bluersw.com:8083/hello-world
[root@ops docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
repo.bluersw.com:8083/hello-world latest bf756fb1ae65 4 months ago 13.3kB
#改名
docker tag repo.bluersw.com:8083/hello-world repo.bluersw.com:8082/hello-world
#上傳到Docker私有倉庫
docker push repo.bluersw.com:8082/hello-world