https://blog.csdn.net/lusyoe/article/details/54926937
最开始接触Nexus是用于Maven私服的,不过在官网上发现最新的Nexus 3.x还支持Docker仓库了,于是果断尝试一把。
Sonatype Nexus 可以从官网上进行下载,这里给出一个链接:
https://www.sonatype.com/download-oss-sonatype
登录服务器,执行以下命令:
# cd /opt
# wget https://download.sonatype.com/nexus/3/nexus-3.2.0-01-unix.tar.gz
# tar zxvf nexus-3.2.0-01-unix.tar.gz
解压后,在当前目录中除了nexus-3.2.0-01还有一个sonatyoe-work目录,用户存放仓库数据的,可根据需要将其改为其他路径,或使用软链接的方式。
这里说下通过改配置文件的方式,将其改为其他路径吧。
编辑nexus-3.2.0-01/bin/nexus.vmoptions文件:
# vim /opt/nexus-3.2.0-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.0-01/bin/nexus start
其默认监听8081端口,注意小心该端口不能被其他程序占用或者防火墙屏蔽了。
还有默认是不推荐使用root用户启动的,这里只是为了演示方便。正式使用可使用新建一个nexus系统用户,然后编辑/opt/nexus-3.2.0-01/bin/nexus.rc
,添加以下内容即可: run_as_user="nexus"
之后再启动,浏览器访问:http://服务器IP:8081
默认管理员账号密码:
admin
admin123
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
# systemctl daemon-reload
# systemctl restart docker
Oracle JDK8 这个可以从官网上进行下载,然后配置一下环境变量就可以了。这个很简单,网上的教程也比较多,这里就不过多介绍了。贴个官方下载链接吧:
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
通过浏览器访问Nexus: http://服务器IP:8081
点击右上角进行登录,初始用户名和密码为:
admin
admin123
点击设置界面,选择Repositories,点击Create repository,如下图所示:
选择仓库类型,这里Docker有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择docker(hosted),如下图:
配置仓库
首先必须为该仓库指定一个唯一的名称,然后是HTTP的端口,最后是docker的api与该仓库进行交互,如下图:
注意这个HTTP端口号也比较关键,在上面修改docker服务时指定的参数需要用到,后面与该仓库进行交互也需要用到。
最后点击下方Create repository完成创建仓库。
已有仓库都已经搭建好了,我们现在再来体验测试一把。
# vim Dockerfile
FROM debian
MAINTAINER luhaoyuan
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
例如: # docker tag lusyoe-debian 192.168.1.2:8082/lusyoe-debian:latest
最后上传镜像: # docker push 192.168.1.2:8082/lusyoe-debian:latest
从私服中下载镜像也很简单,执行以下命令即可 # docker pull 192.168.1.2:8082/lusyoe-debian
搜索镜像也与之前的类似,如下: # docker search 192.168.1.2:8082/lusyoe
就可以搜索带有lusyoe的镜像了:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
192.168.1.2:8082/lusyoe-debian:latest 0
192.168.1.2:8082/lusyoe/mydebian:debian 0
有了这个私服过后,真的是非常方便了。因为官方的dockerhub镜像仓库下载实在是太慢了。而国内其他的一些提供加速镜像的都非常恶心,各种注册什么的。所以公司内部或者自用,私服是最好的选择了。这个感觉就跟之前Maven一样的历史。。。
参考文档:
http://books.sonatype.com/nexus-book/reference3/docker.html