本文使用Docker容器提供Nexus服务,并且前端使用Nginx进行代理。
Nexus是搭建Maven私服的开源软件,下载地址,看来3.X版本已经可以做为Docker的仓库了,但这不是本文要说的内容,以后再研究。
本文已经安装好Docker的环境,CentOS7+Docker1.10
1 | [root@localhost ~]# docker version |
Docker hub 上nexus的镜像地址是https://hub.docker.com/r/sonatype/nexus/,但下载速度挺慢的。使用daocloud.io会快很多,具体方法见daocloud.io的官方文档,或者使用阿里云的镜像,使用方法见这里。
使用daoclound的镜像下载nexus镜像
1 | [root@localhost ~]# dao pull sonatype/nexus:oss |
使用docker images 命令可以看到刚下载的镜像
1 | [root@localhost ~]# docker images |
使用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 查看日志。