Docker镜像仓库
一、Docker Hub(公有仓库)Docker Hub官网:https://hub.docker.com/
目前 Docker 官方维护了一个公共仓库Docker Hub ,大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
假如你以为拉取 Docker Hub 的镜像比较慢的话,我们可以配置一个镜像加速器,当然国内大部分云厂商都提供了相应的加速器,简单配置即可。
注册:你可以在 https://cloud.docker.com 免费注册一个 Docker 账号。
登录:通过执行docker login 下令交互式的输入用户名及暗码来完成在下令行界 面登录 Docker Hub。
注销:你可以通过docker logout 退出登录。
二、阿里云镜像仓库www.aliyun.com
(https://cr.console.aliyun.com/cn-beijing/instances)
账号注册登陆后,搜“容器镜像服务”--->点“容器镜像服务”--->"管理控制台"--->"个人实例"--->"创建命名空间"--->"创建镜像仓库"--->选择仓库"管理"--->可以查看“操作指南”
附带了解:镜像加速器配置https://cr.console.aliyun.com/cn-beijing/instances/mirrors
https://i-blog.csdnimg.cn/direct/f29e048db2af4a439d87ed7fd1df9ccf.png
https://i-blog.csdnimg.cn/direct/4eccab1cc9cc445a966547b2822d50a5.png
https://i-blog.csdnimg.cn/direct/1e8a94536ced481c83207da3050dc990.png
https://i-blog.csdnimg.cn/direct/19a8e8c1e11347588f675d470ab8c508.png
https://i-blog.csdnimg.cn/direct/78f82a5f440444688af0df419b388755.png
根据操作指南进行进行的上传和下载
三、实行环境
https://i-blog.csdnimg.cn/direct/b8bc7577f76445c3ab61c4782814860f.png
都安装好Docker服务
四、Registry(私有仓库)
公司服务器大部分都是私网,为了安全和方便可以搭建私有仓库,而不用完全手动的去导入导出镜像,由于是局域网拉取速度非常快,可以节省带宽和大量时间。
公司会有大量的镜像,而且不光仅是单台的dockerHost。我们需要有一个本地的共用的仓库,来实现多台dockerHost直接拉取镜像而不用手动的将镜像传来传去。
Registry服务端:
1、创建基于registry的私有仓库
用docker容器运行registry私有仓库服务
registry是官方打包好的服务,端口为5000,就像其他假造出来的web服务一样
这里我们使用的是registry:2版本,另有一个registry镜像,这两个没有什么大的区别。registry: 是用Python语言写的,registry:2使用Go 语言写的,理论上来说,registry:2这个版本运行更快些。
下载registry镜像:
docker pull registry:2
https://i-blog.csdnimg.cn/direct/9b9d325ac29b4459bdb66b89839d023b.png
2、运行registry私有仓库服务
docker run -d --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
https://i-blog.csdnimg.cn/direct/b38e1945cfb546428d16233b8c6550ed.png
--restart=always: 设置容器的重启策略为“always”,即容器会在 Docker 守护历程启动时主动启动,或者在容器退出时主动重启
-v /registry:/var/lib/registry: 将主机上的 /registry 目录(假如没有此目录会主动创建)挂载到容器内的 /var/lib/registry 目录。Registry 会将镜像数据存储在这个目录中
Registry客户端:
1、下载一个镜像并给镜像添加标签(要上传的镜像名需要注明私有仓库的IP)
由于我们使用的私有镜像,在上传或下载的时间,都需要我们将镜像的名称直接重命名,要注明它私有仓库的IP地点:暴露端口。切记是必须,否则将辨认不到仓库而上传或下载失败。
docker pull nginx:1.20
https://i-blog.csdnimg.cn/direct/ccfb769a988a449fa0fd36f3cbdad22d.png
docker tag nginx:1.20 192.168.10.11:5000/nginx
https://i-blog.csdnimg.cn/direct/4ac9a7f7e4d44863948f3fb1899b7511.png
docker images
https://i-blog.csdnimg.cn/direct/7690c83534b94ee9868bbe803ad3f47f.png
2、编辑Docker配置文件(需指定私有仓库可以http方式访问)
由于docker默认是从dockehub上下载镜像的,需要在本地指定一下私有仓库的IP加端口,这是由于 Docker默认不允许非HTTPS 方式推送镜像。 假如没做这一步,会报HTTPS的错。
在客户机上编辑docker的配置文件,指定私有仓库地点
vim /etc/docker/daemon.json
添加:
,
"insecure-registries":["192.168.10.11:5000"]
https://i-blog.csdnimg.cn/direct/1ee96089815f444b9577fa627d2ea715.png
重新加载systemd、重启Docker服务
systemctl daemon-reload
systemctl restart docker
上传镜像到仓库测试:
docker push 192.168.10.11:5000/nginx
https://i-blog.csdnimg.cn/direct/5953155d299348d08c486302b04c4f39.png
3、查看Registry私有仓库镜像
Registry客户端:
查看Registry中所有镜像
curl -XGET http://192.168.10.11:5000/v2/_catalog
https://i-blog.csdnimg.cn/direct/7d7323820ae2405c8060b4a4febf0080.png
-XGET:指定 HTTP 请求方法为 GET(默认就是 GET,所以可以省略)
获取指定镜像(这里是 nginx)的所有标签列表
curl http://192.168.10.11:5000/v2/nginx/tags/list
https://i-blog.csdnimg.cn/direct/5e06286f04704683beca10c7fb87ade7.png
Registry服务器端:
curl http://localhost:5000/v2/_catalog
https://i-blog.csdnimg.cn/direct/0fb09f924d414ffeb42a3e5a2bd114a3.png
4、客户端下载镜像
删除之前上传的镜像
docker rmi 192.168.10.11:5000/nginx:latest
https://i-blog.csdnimg.cn/direct/7af9ba1ffa4a41efbc8218b8dbb96be2.png
docker pull 192.168.10.11:5000/nginx
https://i-blog.csdnimg.cn/direct/cc256a039d654757bfcc72341cd7effc.png
docker images
https://i-blog.csdnimg.cn/direct/bc3a4dbfe9944c1aad5b5e951ec8c18e.png
五、Harbor(企业级私有仓库)
Harbor是构建企业级私有docker镜像的仓库的开源办理方案,它是Docker Registry的更高级封装。
它除了提供友好的Web UI界面,脚色和用户权限管理,用户操作审计(用户都做了哪些操作)等功能。
Harbor安装有在线安装和离线安装
这里选用离线安装的方式
为了制止冲突,删除Registry仓库的所有配置
Registry服务端:
docker rm -f $(docker ps -aq)
docker rmi $(docker images -q)
rm -rf /registry/
Registry客户端:
docker rmi 192.168.10.11:5000/nginx:latest
Harbor服务端配置:
1、下载docker-compose工具
docker-compse工具的作用是编排镜像,可以像剧本一样把要做的事先规划好,比方要启动的镜像、镜像名字、运行机制、数据卷,实现更加便捷、快速。
harbor安装好之后会有一个docker-compose.yml文件,安装docker-compse工具就是为了支持这个功能从github上下载docker-compse工具(需vpn连接下载)
下载地点:https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64
将docker-compose-linux-x86_64包上传到/root目录,移动并改名到/usr/local/bin/目录(直接下载到环境变量目录)
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
https://i-blog.csdnimg.cn/direct/2720ec8de8294a55b3cf6b0606443bb3.png
增长可执行权限
chmod +x /usr/local/bin/docker-compose
https://i-blog.csdnimg.cn/direct/4c5f353cc03540248729df99ee04a83e.png
查看版本号并验证下令可用性
docker-compose -v
https://i-blog.csdnimg.cn/direct/4d2da2be7ddb4d80964218634bfa4a34.png
2、Harbor离线模式安装
有在线和离线两种方式,考虑到网速缘故原由,这里我们采用离线下载方式(需vpn连接下载)。
下载地点:https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz
将harbor-offline-installer-v2.8.3.tgz包上传到/root目录并将Harbor包解压到/usr/local/目录
tar xf harbor-offline-installer-v2.8.3.tgz -C /usr/local/
https://i-blog.csdnimg.cn/direct/58c04302e62b44a89d01f3eefd039003.png
3、拷贝Harbor配置文件并修改
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
https://i-blog.csdnimg.cn/direct/c6fd62dd10d8417c934143bfa4eece61.png
vim harbor.yml
修改:
https://i-blog.csdnimg.cn/direct/019e495d674447cf8decd87e900bfd86.png
https://i-blog.csdnimg.cn/direct/28266cc4c237477396678685c28ef365.png
https://i-blog.csdnimg.cn/direct/d562f624090b4466a468e45f833195d2.png
4、安装Harbor(安装完成后会自行启动)
./prepare ——预备环境和天生配置文件
查抄体系环境:验证 Docker 和 Docker Compose 是否已安装,并查抄其版本是否满足要求。
天生配置文件:根据 harbor.yml 配置文件天生 Harbor 所需的实际配置文件。
初始化数据:为 Harbor 的数据库、Redis 等组件天生初始数据。
预备存储:根据配置预备 Harbor 的存储目录。
https://i-blog.csdnimg.cn/direct/e8be38b852504c5688ed40ffbf66a8d0.png
./install.sh ——启动 Harbor 的所有服务容器
启动 Harbor 服务:根据 docker-compose.yml 文件启动 Harbor 的所有容器。
初始化 Harbor:完成 Harbor 的初始化工作,包括数据库、Redis、Registry 等组件的启动和配置。
验证安装:确保 Harbor 的所有服务正常运行。
https://i-blog.csdnimg.cn/direct/89c7497712c742e2be2c410b040adac6.png
5、查看容器状态
docker ps -a
https://i-blog.csdnimg.cn/direct/5967b3fa51314049bd4f45b21d5e40a8.png
harbor不能启动时,可能缘故原由是关闭防火墙后,docker服务未重启,此时只要将docker服务重启即可
6、服务启动下令
启动服务(首次或重新启动)
docker-compose up -d
制止服务,不删除容器
docker-compose stop
重启服务
docker-compose restart
7、使用浏览器访问Harbor网站并登录
浏览器输入192.168.10.11
https://i-blog.csdnimg.cn/direct/066bc9d8d3ff4bd59a02ed872a2e0ac5.png
https://i-blog.csdnimg.cn/direct/81e2894bb52a4a6989b8f671fdc0242e.png
https://i-blog.csdnimg.cn/direct/b265ef8dd9114d30b8dfdda6cfa8463f.png
Harbor客户端配置
1、修改Docker配置文件
vim /etc/docker/daemon.json
修改:
https://i-blog.csdnimg.cn/direct/774b5865004c4e28a06ed104242cc8f2.png
注:指定多个私有仓库时的语法, "insecure-registries": ["192.168.10.11","192.168.10.12"]
重新加载systemd、重启Docker服务
systemctl daemon-reload
systemctl restart docker
2、客户端登录Harbor
docker login -u admin -p Harbor12345 192.168.10.11
https://i-blog.csdnimg.cn/direct/26d6077a83a646d5aaa0dbddf5ed160b.png
3、上传私有镜像到Harbor
天生新镜像名称:
镜像名称要修改成:私有仓库ip/项目名称/镜像名称
docker tag nginx:1.20 192.168.10.11/library/nginx
https://i-blog.csdnimg.cn/direct/8c3d875121714b9ab7feb5ac1219eec8.png
docker images
https://i-blog.csdnimg.cn/direct/39ad5edba8ef441592e517dbf1f7c10b.png
docker push 192.168.10.11/library/nginx
https://i-blog.csdnimg.cn/direct/fc87f2aa289f4574b49f9411c8eaa822.png
4、查看上传到Harbor的镜像
https://i-blog.csdnimg.cn/direct/6496e87ab5d24b5e8f2566209a5b7408.png
https://i-blog.csdnimg.cn/direct/f070f97d59914fe4a3e36ae36f02ff15.png
5、客户端下载镜像
删除镜像
docker rmi 192.168.10.11/library/nginx
https://i-blog.csdnimg.cn/direct/9a24e1b4f5f7428fbcf95c7fdf3e507b.png
docker images
https://i-blog.csdnimg.cn/direct/4780242ee8be452eb401f5bd567bacda.png
docker pull 192.168.10.11/library/nginx
https://i-blog.csdnimg.cn/direct/c0b013cf1c394227a0ae3439f6513dab.png
docker images
https://i-blog.csdnimg.cn/direct/1b00425f6787482cb791cfd242e9f9c2.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]