【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解

@TOC


推荐个人Docker文章,讲的非常详细

【玩转Docker容器 1】Dockerd的详解及安装
【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境
【玩转Docker容器 3】基于Docker部署SpringBoot项目
【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解
【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解
【玩转Docker容器 6】基于Docker构建GitLab管理代码
【玩转Docker容器 7】基于Docker安装Jenkins实现自动化构建、部署、测试、监控项目

1.Nexus是什么

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。

2.为什么要用Docker私服私服呢?

自定义的Docker的镜像,比如你部署微服务项目,你把你的环境搭好,项目配好打包成镜像,丢到私有仓库中去,部署集群的时候直接pull下来直接使用,不需要任何配置,岂不快活,安全又快捷,一般的企业不允许将镜像放到外网,为了安全

3.基于Docker搭建Nexus构建Docker私服

1.下载nexus3的镜像

一定要是搭建了Docker的Linux环境哟,不知道的可以看我之前文章

输入:
docker pull sonatype/nexus3
复制代码

在这里插入图片描述

2.使用镜像启动一个容器

docker run -d --name nexus  --restart=always -p 5000:5000 -p 8081:8081 sonatype/nexus3
复制代码

在这里插入图片描述 注:5000端口是用于镜像仓库的服务端口 8081 端口是nexus的服务端口

3.登录Nexus私服

关闭防火墙,访问http://ip:8081
Nexus启动容器稍微比较慢,等待一会即可。

注:默认账号密码为admin/admin123 在这里插入图片描述

妈耶,进不去,算了改密码吧 在这里插入图片描述

4.修改初始密码,登录Nexus私服

用户名或密码不正确,这个时候我们可以去admin.password文件中去看初始密码。

输入:(找到密码文件)
find / -name 'admin.password'
复制代码

在这里插入图片描述

输入:
cat 输入上面查找的文件位置获取密码
复制代码

在这里插入图片描述

那一串乱七八糟的就是密码。那他的登陆进去修改密码 再次登录,登录进去后他会默认让你修改用户名密码,注意俩个都是打新密码 在这里插入图片描述 一直下一步就好了

5.创建Docker仓库

1.创建Docker总库

默认进入了仓库配置界面,选择Blob Stores开始创建存储空间 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 点击蓝色的创建就ok啦

2.创建Docker存储库

点击设置界面,选择Repositories,点击Create repository,如下图所示: 在这里插入图片描述 选择仓库类型,这里Docker有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择docker(hosted),如下图: 在这里插入图片描述 注:Docker镜像仓库类型含义解释如下:   hosted : 本地存储,即同docker官方仓库一样提供本地私服功能   proxy : 提供代理其他仓库的类型,如docker中央仓库   group : 组类型,实质作用是组合多个仓库为一个地址

在指定docker仓库的名称、指定一个端口用来通过http的方式进行访问仓库、勾选是否支持docker API V1,然后create repository;如图 在这里插入图片描述

这里就告别一段落了 在这里插入图片描述

6.使用当前Linux指定连接Docker私库

因为我们测试的时候不是使用加密的HTTPS进行访问,所以这里需要增加一个docker的启动参数,给他指定私库的地址,如下:

使用命令: (增加如下内容,当然也可通过启动参数增加,注意:底下是俩条命令)
vi /etc/docker/daemon.json

{
   "insecure-registries":["http://120.77.0.58:5000"]
}
复制代码

注:上面的ip地址为自己linux的ip地址。另外linux命令中,vi是编辑文件,之后输入i是进入编辑模式,在添加完上面的代码后,输入esc退出编辑模式,再输入:wq保存并退出。切记5000端口要是外网可以访问的 在这里插入图片描述

重启docker进程: 
systemctl restart docker
复制代码

在这里插入图片描述

查看docker信息:
docker info ,有如下输出即正常
复制代码

在这里插入图片描述

7.使用当前Linux登录私库

1配置仓库Realms(不配置此项无法进行login、pull、push)

需要把这俩个移动到右边去,在点击 save 保存 在这里插入图片描述

2.Docker输入地址进行登录

要使用私库进行上传下载需要进行登录连接到Nexus:(本机登录不需要密码)

输入地址登录:
docker login http://120.77.0.58:5000/repository/dockertest/

还有一种登录方式
docker login -u admin -p admin123 120.77.0.58:5000/repository/dockertest/
复制代码

注:上面的IP地址是自己Docker容器的linux的ip地址,另外一个为仓库名称。

在这里插入图片描述 登录成功

8.使用其他Linux系统连接私有Docker仓库

我这里换了一台Linux,是搭建好Docker的Linux系统

注意:也要执行第6部操作才可以,因为没有配置Https

1.指定连接私库的地址

使用命令: (增加如下内容,当然也可通过启动参数增加,注意:底下是俩条命令)
vi /etc/docker/daemon.json

{
   "insecure-registries":["http://120.77.0.58:5000"]
}
复制代码

在这里插入图片描述

2.重启docker进程

systemctl restart docker
复制代码

在这里插入图片描述

3.Docker输入地址进行登录

输入地址:
docker login http://120.77.0.58:5000/repository/dockertest/

还有一种登录方式
docker login -u admin -p admin123 120.77.0.58:5000/repository/dockertest/
复制代码

在这里插入图片描述

9.使用当前或者其他Linux上传镜像到Docker私服

1.查看有哪些镜像

输入查看镜像命令:
docker images
复制代码

在这里插入图片描述 上传镜像分四步

1:登录:
docker login -u admin -p admin123 120.77.0.58:5000/repository/dockertest/
2.为镜像打标签(这里使用容器ID打标签)
docker tag 容器id 120.77.0.58:5000/redis
3.上传镜像
docker push 120.77.0.58:5000/redis
4.退出登录
docker logout 120.77.0.58:5000
复制代码

在这里插入图片描述

成功 在这里插入图片描述

10.Docker从私服下载镜像

我这里换了一台服务器,其实也可以不换,直接删除来下载可以 记住也要第六步的操作,因为没有事情ssl证书,使用http就要这样

登录:
docker login -u admin -p admin123 120.77.0.58:5000/repository/dockertest/
下载:
docker pull 120.77.0.58:5000/redis
查看镜像:
docker images
复制代码

在这里插入图片描述 成功

来源:https://juejin.cn/post/7006343932053291021
posted @ 2022-12-24 22:09  程序员小明1024  阅读(318)  评论(0编辑  收藏  举报