目录

1.简单私有仓库管理

1.概述

2.上传镜像到私有仓库

3.从私有仓库拉取镜像

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

1.下载nexus3的镜像

2.启动容器

3.登录管理平台创建Docker总库

4.创建Docker存储库

5.配置仓库Realms

6.Docker输入地址进行登录操作


1.简单私有仓库管理

1.概述

Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜 像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。

# 1、拉取私有仓库镜像 
docker pull registry
# 2、启动私有仓库容器 
docker run -id --name=registry -p 25000:5000 registry

firewall-cmd --zone=public --add-port=25000/tcp --permanent
firewall-cmd --reload
# 3、打开浏览器 输入地址http://私有仓库服务器ip:25000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json   
vim /etc/docker/daemon.json    
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip 
{"insecure-registries":["ip:25000"]} 
# 5、重启docker 服务 
systemctl restart docker
docker start registry

2.上传镜像到私有仓库

# 1、标记镜像为私有仓库的镜像     
docker tag redis:5.0  私有仓库服务器IP:25000/redis:5.0 
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:25000/redis:5.0 

# 3、查看私有仓库镜像列表
http://ip:25000/v2/_catalog

3.从私有仓库拉取镜像

#拉取镜像 
docker pull 私有仓库服务器ip:25000/centos:7

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

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

1.下载nexus3的镜像

docker pull sonatype/nexus3
Trying to pull repository docker.io/sonatype/nexus3 ... 
latest: Pulling from docker.io/sonatype/nexus3
26f1167feaf7: Pull complete 
adffa6963146: Pull complete 
e88dfbe0ef6a: Pull complete 
0d43c5e95446: Pull complete 
8ff7b45a7e29: Pull complete 
Digest: sha256:eff4fb12346ceb5cd424732ee9f2765c0db0f8d5032cdb2f7f7e17acc349f651
Status: Downloaded newer image for docker.io/sonatype/nexus3:latest
[root@VM-16-15-centos ~]#

2.启动容器

# 25000端口是用于镜像仓库的服务端口映射, 28081 端口是nexus的服务端口映射
docker run -it -d --name=nexus --restart=always -p 25000:5000  -p 28081:8081 sonatype/nexus3

firewall-cmd --zone=public --add-port=25000/tcp --permanent
firewall-cmd --zone=public --add-port=28081/tcp --permanent
firewall-cmd --reload
# 进入容器查看密码
docker exec -it nexus bash

cat /opt/sonatype/sonatype-work/nexus3/admin.password

# 遗传uuid复制出来即可登录 ip:28081
admin/b0caddba-1d3e-4255-8a3f-7c14736f8785

登录成功后会有个提示修改密码的操作,修改密码就可以了。
修改密码后一定要记住,在修改密码完成之后 admin.password ⽂件会⾃动删除。

Nexus启动容器稍微比较慢,等待一会即可。
ip:28081
ip:25000

3.登录管理平台创建Docker总库

ip:28081

点击齿轮按钮,进入仓库配置界面,选择Blob Stores开始创建存储空间

docker仓库nexus docker仓库管理_运维

docker仓库nexus docker仓库管理_docker_02

docker仓库nexus docker仓库管理_docker仓库nexus_03

 

4.创建Docker存储库

点击设置界面,选择Repositories,点击Create repository,如图所示

Docker镜像仓库类型含义解释如下:   

hosted : 本地存储,即同docker官方仓库一样提供本地私服功能   

proxy : 提供代理其他仓库的类型,如docker中央仓库   

group : 组类型,实质作用是组合多个仓库为一个地址

选择hosted ,填写下图内容保存即可

docker仓库nexus docker仓库管理_docker仓库nexus_04

docker仓库nexus docker仓库管理_容器_05

 

docker仓库nexus docker仓库管理_运维_06

 

docker仓库nexus docker仓库管理_容器_07

5.配置仓库Realms

不配置此项无法进行login、pull、push

双击左边两项点击save保存即可

docker仓库nexus docker仓库管理_docker仓库nexus_08

6.Docker输入地址进行登录操作

# 本机不需要输入密码,其他机器需要密码;上传拉取镜像也是需要配置{"insecure-registries":["ip:25000"]} 
-bash-4.2# docker login ip:25000/repository/docker-tencent
Username: admin
Password: 
Login Succeeded

# 为镜像打标签(这里使用镜像名REPOSITORY+TAG打标签,也可以用镜像id打标签)
docker tag mysql:5.7.41 ip:25000/mysql:5.7.41
# 查看 镜像列表
-bash-4.2# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
ip:25000/mysql   5.7.41              0018a8d83892        13 days ago         455 MB
docker.io/mysql               5.7.41              0018a8d83892        13 days ago         455 MB
# 上传镜像
docker push ip:25000/mysql:5.7.41
# 删除本地镜像 
 docker rmi ip:25000/mysql:5.7.41
# 拉取镜像
docker pull ip:25000/mysql:5.7.41
# 退出登录
docker logout ip:25000