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

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

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您提供详细的操作步骤和代码。 1. 安装DockerNexus 首先需要安装DockerNexusDocker官网可以下载到Docker的安装包,Nexus可以在Sonatype官网下载到。 2. 配置Nexus - 启动Nexus 在安装Nexus之后,进入Nexus的安装目录,执行以下命令启动Nexus: ``` ./bin/nexus start ``` - 登录Nexus Nexus启动之后,在浏览器中访问`http://localhost:8081`,进入Nexus的登录页面。默认的用户名和密码是`admin/admin123`。 - 创建Docker仓库 在登录Nexus之后,进入仓库管理页面,创建一个`docker`类型的仓库,并将仓库名称设置为`docker-repo`。 - 配置Docker客户端 在本地配置Docker客户端,将Docker镜像仓库地址指向NexusDocker仓库。在终端中执行以下命令: ``` sudo vim /etc/docker/daemon.json ``` 在文件中添加以下内容: ``` { "insecure-registries": ["localhost:8082"] } ``` 其中`localhost:8082`是NexusDocker仓库地址。 - 重启Docker服务 在配置完成之后,需要重启Docker服务使配置生效: ``` sudo systemctl restart docker ``` 3. 存储操作系统镜像NexusDocker仓库中存储操作系统镜像,以下以Ubuntu为例。 - 拉取Ubuntu镜像 在终端中执行以下命令拉取Ubuntu镜像: ``` docker pull ubuntu:latest ``` - 为Ubuntu镜像打标签 为Ubuntu镜像打上`docker-repo`的标签,以便将镜像上传到NexusDocker仓库中: ``` docker tag ubuntu:latest localhost:8082/docker-repo/ubuntu:latest ``` - 上传Ubuntu镜像 将打好标签的Ubuntu镜像上传到NexusDocker仓库中: ``` docker push localhost:8082/docker-repo/ubuntu:latest ``` 4. 运行操作系统镜像NexusDocker仓库中拉取Ubuntu镜像,并运行生成容器。 - 拉取Ubuntu镜像 在终端中执行以下命令拉取Ubuntu镜像: ``` docker pull localhost:8082/docker-repo/ubuntu:latest ``` - 运行Ubuntu容器 在终端中执行以下命令运行Ubuntu容器: ``` docker run -it localhost:8082/docker-repo/ubuntu:latest /bin/bash ``` 以上命令会启动一个Ubuntu容器,并进入容器的终端。 至此,通过docker利用nexus搭建私有仓库,并存储常用的操作系统镜像的过程已经完成。 代码示例: ``` # 拉取Ubuntu镜像 docker pull ubuntu:latest # 为Ubuntu镜像打标签 docker tag ubuntu:latest localhost:8082/docker-repo/ubuntu:latest # 上传Ubuntu镜像 docker push localhost:8082/docker-repo/ubuntu:latest # 拉取Ubuntu镜像 docker pull localhost:8082/docker-repo/ubuntu:latest # 运行Ubuntu容器 docker run -it localhost:8082/docker-repo/ubuntu:latest /bin/bash ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值