Docker镜像仓库比较多,通用的有github、harbor等,这里我们安装私有的简单仓库 registry,主要因为一是docker官方提供的,二是安装使用都比较简单
1. 环境准备
准备两台安装好的Docker服务器
服务端机器(仓库registry):docker私有仓库服务器,执行registry容器
测试端机器:普通docker服务器,用于测试registry安装是否成功,上传和下载镜像
2. 部署
2.1 下载registry镜像
docker pull registry
2.2 查看下载的registry镜像
docker images
2.3 运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
参数说明:
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器
--name registry:创建容器命名为registry,你可以随便命名
registry:latest:这个是刚才pull下来的镜像
2.4 查看当前仓库中所有镜像
curl http://127.0.0.1:5000/v2/_catalog
3. 测试镜像仓库
3.1 修改镜像源并重启docker服务
vim /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"]
}
如果没有deamon.json文件,则仓库
重启docker
systemctl restart docker
3.2 下载busybox镜像
[root@localhost docker]# docker pull busybox
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest f6e427c148a7 36 hours ago 1.15MB
3.3 为镜像加标签
[root@localhost docker]# docker tag busybox:latest 172.18.18.90:5000/busybox:v1
3.4 上传到镜像服务器仓库
[root@localhost docker]# docker push 10.10.205.83:5000/busybox:v1
The push refers to repository [10.10.205.83:5000/busybox]
Get https://10.10.205.83:5000/v2/: http: server gave HTTP response to HTTPS client
注意了,这是报错了,需要https的方法才能上传,我们可以修改下daemon.json来解决:
3.5 修改deamon.json(使支持https)
[root@localhost docker]# vi /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"],
"insecure-registries": [ "10.10.205.83:5000"]
}
3.6 重启docker
[root@localhost docker]# systemctl restart docker
3.7 再次上传
[root@localhost docker]# docker push 10.10.205.83:5000/busybox:v1
从结果看,就已经上传成功
3.8 下载上传的镜像
删除本地对应的镜像
docker rmi 10.10.205.83:5000/busybox:v1
docker rmi busybox
查看镜像
docker images
下载镜像
[root@localhost docker]# docker pull 10.10.205.83:5000/busybox:v1
查看镜像
docker images
网友评论