目录
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开始创建存储空间
4.创建Docker存储库
点击设置界面,选择Repositories,点击Create repository,如图所示
Docker镜像仓库类型含义解释如下:
hosted : 本地存储,即同docker官方仓库一样提供本地私服功能
proxy : 提供代理其他仓库的类型,如docker中央仓库
group : 组类型,实质作用是组合多个仓库为一个地址
选择hosted ,填写下图内容保存即可
5.配置仓库Realms
不配置此项无法进行login、pull、push
双击左边两项点击save保存即可
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