PS:Nexus镜像仓库
镜像拉取
docker pull sonatype/nexus3
容器启动
# home文件下新增nexus文件 映射容器里的nexus-data
mkdir /home/nexus && chown -R 200 /home/nexus
# 运行容器
docker run -d -p 8081:8081 -p 8082:8082 \
--name nexus \
-v /home/nexus:/nexus-data \
--restart always \
sonatype/nexus3
防火墙放行端口 8081、8082
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8082/tcp --permanent
访问 Nexus: IP + 8081端口访问
初始化Nexus
# 获取初始密码
cat /home/nexus/admin.password
# 6cd3cb39-2479-48ca-8ca0-831342b6f29d
# 初始化登录之后 修改密码 先允许匿名访问 选择 Enable anonymous access
测试、先开启匿名访问
创建一个Docker私服
选择docker(hosted)创建, 其他模式可自行了解
设置仓库信息
更改Realms设置,将Dcoker Bearer Token Realm移动到右侧
服务器daemon.json修改
# 路径
vim /etc/docker/daemon.json
# 修改对应的IP地址和端口号,数组中最后一项后面不加逗号
{
"insecure-registries" : [
"172.16.81.150:8082"
]
}
# 重启docker
systemctl restart docker
# 登录nexus
docker login 172.16.81.150:8082
# 输入账号密码
#登录成功
镜像打包,推送到Nexus
在jenkins容器中也要使用上面的docker login操作登录到nexus,打包推送镜像
# 镜像打包
docker build -t 镜像名称 .
docker build -t 172.16.81.150:8082/fe/nginx-fe-$timestamp .
# 镜像推送
docker push 172.16.81.150:8082/fe/nginx-fe-$timestamp
# 删除本机镜像
docker rmi 172.16.81.150:8082/fe/nginx-fe-$timestamp