一、 概述
本文介绍使用Nexus在CentOS7上安装Docker私库。公司网络限制,使用docker pull registry下载总是报错,无奈只能放弃。
安装环境:centOS7.9 64位
Nexus版本:nexus-3.9.0-01-unix.tar.gz
下载地址:
https://help.sonatype.com/repomanager3/download/
需要科学上网,可以在网上下载一个。
演示操作服务器IP地址:192.168.224.190
二、 安装步骤
2.1 将下载的Nexus安装上传到服务器
2.2 解压安装包
tar zxvf nexus-3.9.0-01-unix.tar.gz
解压完之后有2个文件夹 nexus-3.9.0-01 和 sonatype-work
2.3 切换到root账号,给上述两个文件夹赋予可执行权限:
chmod +x nexus-3.9.0-01
2.4 启动nexus,执行如下命令:
cd nexus-3.9.0-01
./nexus start 或者./nexus run
后者可以看到启动日志。
注意:不能以root用户启动nexus。
2.5 启动后,打开界面:
使用 http://ip:8081 打开
默认用户名/密码为 : admin/admin123
三、 Nexus配置
3.1 点击齿轮图标创建仓库
填入上述红色箭头指向的栏位,最后点击“save ”.
3.2点击Security-Roles
点击“Create role”创建角色:
输入Role ID:1,输入Role name:dockerManager;这两项可自己定义。最后一栏,输入“docker”将过滤出来的权限移至右边。
最后,点击“create role”保存。
3.3点击Security-Users
点击“Create local user”创建用户
输入上述信息,点击“Create local user”保存
3.4点击Security-Realms
在右边将“Docker Bearer Token Realm”移至右边Active,点击“Save”保存。
四、 访问Docker本地私有仓库
有两种方式。
4.1 Nginx加密代理,使用SSL访问(需要生成证书),略。
这里采用 配置Docker http可信地址的方式。
// 1.编辑docker服务端设置,执行如下命令:
vi /etc/docker/daemon.json
// 2.将下面内容加到配置文件中,执行如下命令:
{
“insecure-registries”:[“http://localhost:5000”]
}
// 3.重载配置文件,执行如下命令:
systemctl daemon-reload
// 4.重启Docker,执行如下命令:
systemctl restart docker
// 5.查看设置是否生效 ,执行如下命令:
docker info
4.2 登录nexus私有仓库,测试是否可以连接成功
//执行如下命令,然后依次输入3.3步骤设置的admin账号、密码
docker login http://192.168.224.190:5000
登录成功会显示:Login Succeeded
4.3 制作镜像并上传私库
前提:已经安装好docker。
4.3.1 编辑Dockerfile文件:
其中,willfar-esafe-jwt-1.0-SNAPSHOT.jar是打包好的应用jar包文件名称;“java:8”是我从网上下载的java8 Docker镜像,不使用命令安装,需要用到基础镜像都直接从网上下载好后上传到服务器,使用docker load –I fileName 命令进行加载,docker tag b03b74b01d97 docker-redis:0.0.1命令提交到本地镜像仓库。
注意红色框文件:
红色箭头指向是java8镜像:
4.3.2 制作镜像
- 执行命令:
docker build -t willfar-jwt:v1.0 .
执行成功后,查看制作好的镜像:docker images
2.运行镜像文件,执行命令:
docker run --name esafe-home -it -v /usr/local/doc:/data -d -p 8080:8080 willfar-jwt:v1.0 --privileged=true
3.查看运行镜像,执行命令:docker ps
4.上传镜像到私库,执行命令:
docker push 192.168.224.190:5000/willfar-jwt:v1.0
4.4浏览器查看上传到私库的镜像
浏览器打开地址:http://192.168.224.190:8081/#browse/search/docker
五、 从私有镜像仓库下载镜像
在同一个局域网内的服务器可以拉取上面制作的镜像,执行命令:
docker pull 192.168.224.190:5000/willfar-jwt:v1.0
六、 扩展
Nexus不仅可以管理Docker,还可以管理Maven镜像。
七、 其他
受限于公司网络的影响,本文除了安装Docker使用命令行,其他安装操作都是离线安装,就是先下载安装包,再进行安装。
使用docker pull命令拉取镜像总是报错:
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority
在这里插入图片描述
推测原因:公司网络限制了。