linux下docker搭建Nexus3私有镜像仓库,超详细版

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配置启动,需要其他配置同学可以自己自行修改。

希望我的教程可以帮助到你,祝你每天开心。

猜你喜欢

转载自blog.csdn.net/sasafa/article/details/126222609
今日推荐