大家都知道nexus 是作为maven的仓库来使用的,免费而且也很方便,不过nexus3.x 可以让我们存储docker的镜像,作为docker的镜像仓库,docker虽然有自己的私有仓库的镜像,但是用着不怎么方便,尤其是删除镜像的时候很麻烦,既然nexus这么好用,我们今天就用nexus搭建一个能存储docker镜像的仓库!不说废话了,开干!
-------------------------------------------------------------------------------------------------------------------------------------
首先:我们需要修改/etc/docker/daemon.json 文件,添加上:
"insecure-registries":["192.168.134.131:5000"]
ip根据你自己的情况而定
然后重启docker
systemctl restart docker
直接使用docker 命令创建nexus容器并运行
docker run -d -p 5000:5000 -p 8081:8081 --name nexus --restart=always --privileged=true
-v /usr/local/nexus/nexus-data : /nexus-data sonatype/nexus3
解释一下命令:
-d 后台运行
-p 端口映射 5000:5000 是为了一会我们docker仓库准备的端口,8081:8081是为了我们maven私服准备的,本章只讲docker仓库的使用
--name 就是我们自己给容器起的别名
--privileged=true 是因为我这里用到了文件的挂载,而且我的linux 是centos7 必须加上这个才能有权限操作这个我挂载的文件,如果加上这个参数还是不能正常启动你的nexus,执行这个一下命令试试:
chmod 777 /usr/local/nexus/nexus-data/
启动成功,访问页面192.168.134.131:8081
至于怎么重置密码这里就不在赘述了,有详细的步骤,我这个是登录之后的页面!
接下来创建一个docker仓库
选择docker(hosted)
点击最下面的 Create repository
这样就创建好了我们的docker仓库
接下来,我们在主机上登录这个仓库
用户名密码是 我们启动服务的时候的重置的密码
查看你现在的拥有的镜像
我现在用nginx 举例子,上传这个镜像到我们刚刚搭建的私服上去:步骤如下
修改tag
push 该镜像
执行完成,去私服查看一下
上传是完成了,我们在试一下pull
为了测试,我先把我刚刚tag 的镜像删除
目前没有192.168.134.131:5000/nginx_v1 这个镜像了,现在从私服拉取
从私服的创建到上传,到下载,已经完成了,那么我们校验一下我们拉取下来的这个nginx 可用不可用?(其实多此一举,算了还是试试吧,哈哈)
启动成功,访问页面
--------------------------
打完收工