红联Linux门户
Linux帮助

sonatype nexus 3搭建Docker私有仓库

发布时间:2017-04-09 10:14:03来源:linux网站作者:无寄语
最开始接触Nexus是用于Maven的,不过在官网上发现最新的Nexus 3.x还支持Docker仓库了,于是果断尝试一把。
 
环境
OS Ubuntu 16.04
Sonatype Nexus 3.2
Docker 1.13.0
Oracle JDK8
 
安装配置
Sonatype Nexus 3.2
Sonatype Nexus 可以从官网上进行下载,这里给出一个链接:
https://www.sonatype.com/download-oss-sonatype
登录服务器,执行以下命令:
# cd /opt
# wget https://download.sonatype.com/nexus/3/nexus-3.2.1-01-unix.tar.gz
# tar zxvf nexus-3.2.1-01-unix.tar.gz
解压后,在当前目录中除了nexus-3.2.1-01还有一个sonatyoe-work目录,用户存放仓库数据的,可根据需要将其改为其他路径,或使用软链接的方式。
这里说下通过改配置文件的方式,将其改为其他路径吧。
编辑nexus-3.2.1-01/bin/nexus.vmoptions文件:
# vim /opt/nexus-3.2.1-01/bin/nexus.vmoptions
我们只需要改下日志存放路径、数据存放路径以及临时存放路径即可,分别对应着以下属性:
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
最后启动nexus:
# /opt/nexus-3.2.1-01/bin/nexus start
其默认监听8081端口,注意小心该端口不能被其他程序占用了。
还有默认是不推荐使用root用户启动的,这里只是为了演示方便。正式使用可使用新建一个nexus系统用户,然后编辑/opt/nexus-3.2.1-01/bin/nexus.rc,添加以下内容即可:
run_as_user="nexus"
之后再启动,浏览器访问:http://服务器IP:8081
默认管理员账号密码:
admin
admin123
 
Docker
Docker安装推荐使用国内的镜像站下载。因为国情的原因,从官网下载太慢了。这里推荐使用清华大学开源镜像站:
https://mirrors.tuna.tsinghua.edu.cn/help/docker/
具体的安装步骤,上面网址中写的很清楚,这里就不多介绍了。只说下配置,因为我们要使用Docker私服是需要再配置一下的。
编辑配置文件:
# vim /etc/systemd/system/multi-user.target.wants/docker.service
找到ExecStart属性,在dockerd后面添加--insecure-registry 服务器IP:Docker仓库端口 ,最终如下:
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.2:8082
重启Docker服务
# systemctl daemon-reload
# systemctl restart docker
 
Oracle JDK8
Oracle JDK8 这个可以从官网上进行下载,然后配置一下环境变量就可以了。这个很简单,网上的教程也比较多,这里就不过多介绍了。贴个官方下载链接吧:
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
 
创建Docker私有仓库
通过浏览器访问Nexus:
http://服务器IP:8081
点击右上角进行登录,初始用户名和密码为:
admin
admin123
点击设置界面,选择Repositories,点击Create repository,如下图所示:
sonatype nexus 3搭建Docker私有仓库
选择仓库类型,这里Docker有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择docker(hosted),如下图:
sonatype nexus 3搭建Docker私有仓库
配置仓库
首先必须为该仓库指定一个唯一的名称,然后是HTTP的端口,最后是docker的api与该仓库进行交互,如下图:
sonatype nexus 3搭建Docker私有仓库
注意这个HTTP端口号也比较关键,在上面修改docker服务时指定的参数需要用到,后面与该仓库进行交互也需要用到。
最后点击下方Create repository完成创建仓库。
 
创建定制的容器镜像
已有仓库都已经搭建好了,我们现在再来体验测试一把。
首先编写一个定制容器镜像脚本。
# vim Dockerfile
FROM debian
MAINTAINER luhaoyuan <lusyoe@163.com>
CMD ["echo", "hello, my docker"]
创建镜像
# docker build -t="lusyoe-debian" .
运行容器测试
# docker run lusyoe-debian
可以看到控制台打印出hello, my docker了,证明我们自制的镜像成功。
 
上传镜像
登录私有仓库
注意在push上传之前必须要先登录
# docker login 192.168.1.2:8082
打标记
在上传镜像之前需要先打一个tag,用于版本标记。
格式是这样的:
docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>
例如:
# ddocker tag lusyoe-debian 192.168.1.2:8082/lusyoe-debian:latest
最后上传镜像:
# docker push 192.168.1.2:8082/lusyoe-debian:latest
 
pull镜像
从私服中下载镜像也很简单,执行以下命令即可
# docker pull 192.168.1.2:8082/lusyoe-debian
 
搜索镜像
搜索镜像也与之前的类似,如下:
# docker search 192.168.1.2:8082/lusyoe
就可以搜索带有lusyoe的镜像了:
sonatype nexus 3搭建Docker私有仓库
 
总结
有了这个私有仓库过后,真的是非常方便了。因为官方的dockerhub(https://hub.docker.com/)镜像仓库下载实在是太慢了。而国内其他的一些提供加速镜像的都非常不好,各种注册什么的。所以公司内部或者自用,私有仓库是最好的选择了。这个感觉就跟之前Maven一样的历史。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29862.html