1、首先先拉取nexus3镜像,输入
docker pull sonatype/nexus3
不输入标签默认拉取最新的镜像,如下:
2、输入
docker images
查看是否拉取成功。
3、创建两个子目录
mkdir docker_nexus3
mkdir docker_nexus3/nexus-data
用于等会挂载内部目录。
4、输入
chown -R 200 docker_nexus3/nexus-data
修改刚刚创建的目录属组权限,用于在nexus3内拥有写入权限。
5、输入
chmod 777 docker_nexus3/nexus-data/
修改目录权限。
6、开始启动容器,输入如下,等待几分钟。(这里楼主云服务器配置较弱,需要改启动容器的配置,这里改为1核2G,以防启动报错;配置强大的同学可以不用加这一条命令,直接使用下面的命令。配置弱的同学可以拉到最底看下面有情景处理方法)
docker run -d \
--privileged=true \
--name=the_nexus3 \
-p 6000:6000 \
-p 8088:8081 \
-v /root/docker_nexus3/nexus-data:/nexus-data \
sonatype/nexus3
#-e INSTALL4J_ADD_VM_PARAMS="-Xms256M -XX:MaxDirectMemorySize=2048M" \
命令解读
--privileged=true 用于在容器内也拥有root权限
-p 6000:6000 此端口号是用于使用docker账号推送下载的端口号
-p 8088:8081 此端口号是浏览器上查看nexus3服务的端口
-v /root/docker_nexus3/nexus-data:/nexus-data 挂载本地目录到容器内部目录,记住本地目录一定是绝对路径
7、用如下命令:
docker logs the_nexus3 -f
查看运行日志是否安装成功;出现如下则启动成功。
8、初始登录需要去查看初始密码,在挂载的本地目录下查看初始密码,输入
cat docker_nexus3/nexus-data/admin.password
如下:
9、初始账号是admin,输入宿主机ip+外部设置端口
,刚刚楼主设置的是8088,所以浏览器输入ip:8088
,登录后看到如下:
10、点击右上角初始登录,输入账号admin+刚刚查到的初始密码
11、进来后会弹出窗口提示修改密码,按着步骤修改。
12、按自己需求选择,禁止匿名访问还是允许,这里楼主选择禁止,点击下一步,直到最后一步,nexus3就安装好了。
开始推送本地镜像到私有仓库:
1、点击左上角repositories->create repository。
2、选择创建docker(hosted)。
3、输入用户名,然后输入刚刚设置的docker上传下载登录的端口号,剩下的默认,或者选择自己需要的功能;最后拉到最底,点击create repository选择创建仓库。
4、显示如下创建成功。
5、在如下把Docker Bearer Token Realm移到右边,点击保存。
6、然后开始添加用户访问规则,然后赋予这个仓库的权限给用户。
7、创建用户名以及id,选择填一样的,防止忘记。
8、规则全部放到右边,admin也放右边,点击左下角创建。
9、查看到创建成功。
10、按步骤创建新用户。
11、创建名字,邮箱,密码,把刚刚新建的规则加过去。
12、查看创建成功。
13、因为楼主用的是http,docker不允许非https推送镜像,所以需要配置一下,在每台需要登录的机器上都要配置如下,不然无法推送拉取以及登录,那台需要推送下载,哪台就需要配置http。
输入
vi /etc/docker/daemon.json
在里面修改,楼主在这里配的配置文件。
14、输入 :wq
保存退出,重启docker生效。
systemctl daemon-reload
systemctl restart docker
15、开始登录,输入
docker login 仓库主机ip:6000
出现如下,填入刚刚设置的用户名及密码,刚刚设置的是myone账号。
16、对需要上传的镜像打标签,这里楼主使用nginx镜像做示范,输入
docker tag 原镜像名称:版本 仓库主机ip:6000/新镜像名字:版本号
然后输入 docker images
查看是否打好新镜像标签。
17、开始推送镜像到仓库,输入
docker push 仓库主机ip:6000/mynginx1:v1
18、进入自己的仓库查看。
19、选中url转到,再点击browser,然后转到自己仓库。
20、发现已经上传成功。
21、如果需要从其他电脑下载镜像的话,记得先设置daemon.json文件下http模式,登录后,再执行
docker pull 仓库主机ip:6000/mynginx1:v1
即可。到这里就完成私有仓库的推送下载啦。
可能出现的问题:
1、启动容器时候出现无法启动情况,查看
docker logs the_nexus3 -f
运行日志发现如下,提示物理内存不足,原因是主机配置较弱,启动时候需要指定配置。
2、启动命令改为如下:
docker run -d \
--privileged=true \
--name=the_nexus3 \
-p 6000:6000 \
-p 8088:8081 \
-v /root/docker_nexus3/nexus-data:/nexus-data \
-e INSTALL4J_ADD_VM_PARAMS="-Xms256M -XX:MaxDirectMemorySize=2048M" \
sonatype/nexus3
其中
-e INSTALL4J_ADD_VM_PARAMS="-Xms256M -XX:MaxDirectMemorySize=2048M"
是指定以1核2G配置启动,需要其他配置同学可以自己自行修改。