0%

Docker 搭建maven私服Nexus OSS

本文使用Docker容器提供Nexus服务,并且前端使用Nginx进行代理。

Nexus是搭建Maven私服的开源软件,下载地址,看来3.X版本已经可以做为Docker的仓库了,但这不是本文要说的内容,以后再研究。
本文已经安装好Docker的环境,CentOS7+Docker1.10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~]# docker version
Client:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-44.el7.centos.x86_64
Go version: go1.4.2
Git commit: 9419b24-unsupported
Built: Fri Jun 24 12:09:49 2016
OS/Arch: linux/amd64

Server:
Version: 1.10.3
API version: 1.22
Package version: docker-common-1.10.3-44.el7.centos.x86_64
Go version: go1.4.2
Git commit: 9419b24-unsupported
Built: Fri Jun 24 12:09:49 2016
OS/Arch: linux/amd64

Docker hub 上nexus的镜像地址是https://hub.docker.com/r/sonatype/nexus/,但下载速度挺慢的。使用daocloud.io会快很多,具体方法见daocloud.io的官方文档,或者使用阿里云的镜像,使用方法见这里

使用daoclound的镜像下载nexus镜像

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# dao pull sonatype/nexus:oss

Pulling repository sonatype/nexus:oss

ac7d6c290ee0: Download complete
a3ed95caeb02: Download complete
73011fd28201: Download complete
14bf1cb804f4: Download complete
7138b67bf6c5: Download complete
Pull sonatype/nexus:oss complete, you can find it with 'docker images'

使用docker images 命令可以看到刚下载的镜像

1
2
3
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sonatype/nexus oss 1175f465c39f 12 weeks ago 455.4 MB

使用docker run命令启动镜像

1
docker run -d --name nexus -p 8081:8081 sonatype/nexus:oss

这样就可以通过宿主机的8081端口访问nexus oss了.
因为容器是可以随时删除或更新的,这样用户数据就不能存到容器中,可以通过 -v 这个参数将宿主机的一个目录挂载到容器的工作目录.

1
docker run -d --name nexus -p 8081:8081 -v /data/nexus-data:/sonatype-work:rw --privileged=true sonatype/nexus:oss

挂载时如果启动不成功可能是目录的权限问题
nexus 使用UID 200 来启动程序的,所以只要将挂载的目录给UID=200相应的权限即可

1
chmod -R 200 /data/nexus-data

然后再重新启动一个容器就可以了。可以通过docker logs -f neuxs 查看日志。