sonatype nexus 3搭建Docker私有仓库

前言

最开始接触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 可以从官网上进行下载,这里给出一个链接: 
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

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,如下图所示: 
    repository

  • 选择仓库类型,这里Docker有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择docker(hosted),如下图: 
    docker_type

  • 配置仓库 
    首先必须为该仓库指定一个唯一的名称,然后是HTTP的端口,最后是docker的api与该仓库进行交互,如下图: 
    config
    注意这个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  

总结

有了这个私服过后,真的是非常方便了。因为官方的dockerhub镜像仓库下载实在是太慢了。而国内其他的一些提供加速镜像的都非常恶心,各种注册什么的。所以公司内部或者自用,私服是最好的选择了。这个感觉就跟之前Maven一样的历史。。。


原文

参考文档: 

http://books.sonatype.com/nexus-book/reference3/docker.html

猜你喜欢

转载自blog.csdn.net/fishinhouse/article/details/80581840