前言
最开始接触Nexus是用于Maven私服的,不过在官网上发现最新的Nexus 3.x还支持Docker仓库了,于是果断尝试一把。
环境
- OS Debian 8.7
- Sonatype Nexus 3.2
- Docker 1.13.0
- Oracle JDK8
安装配置
Sonatype Nexus 3.2
Sonatype Nexus 可以从官网上进行下载,这里给出一个链接: 登录服务器,执行以下命令:
# 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
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 这个可以从官网上进行下载,然后配置一下环境变量就可以了。这个很简单,网上的教程也比较多,这里就不过多介绍了。贴个官方下载链接吧:
创建Docker私有仓库
-
通过浏览器访问Nexus:
http://服务器IP:8081
-
点击右上角进行登录,初始用户名和密码为:
admin
admin123
-
选择仓库类型,这里Docker有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择docker(hosted),如下图:
-
配置仓库 首先必须为该仓库指定一个唯一的名称,然后是HTTP的端口,最后是docker的api与该仓库进行交互,如下图:
注意这个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>
例如:# docker 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的镜像了:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
192.168.1.2:8082/lusyoe-debian:latest 0
192.168.1.2:8082/lusyoe/mydebian:debian 0
总结
有了这个私服过后,真的是非常方便了。因为官方的镜像仓库下载实在是太慢了。而国内其他的一些提供加速镜像的都非常恶心,各种注册什么的。所以公司内部或者自用,私服是最好的选择了。这个感觉就跟之前Maven一样的历史。。。
参考文档:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2045.html