CentOS7搭建registry
本文的安装环境是CentOS 7.3,不适用CentOS 6.x的相关环境
registry搭建流程如下
- Docker 要求 CentOS 系统的内核版本高于3.10,通过 uname -r 命令查看你当前的内核版本
- 使用 root 权限登录 Centos。确保 yum 包更新到最新。执行如下命令进行更新,
sudo yum update
- 卸载旧版本(如果安装过旧版本的话),执行如下命令,
sudo yum remove docker docker-common docker-selinux docker-engine
- 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的,
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源,
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 可以查看所有仓库中所有docker版本,并选择特定版本安装,
yum list docker-ce --showduplicates | sort -r
- 安装docker,
sudo yum install docker-ce-18.03.1.ce
- 启动docker,并加入开机启动。启动docker:
sudo systemctl start docker
,加入开机启动:sudo systemctl enable docker
- 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)。
docker version
- docker加速器,登录daocloud.io 点击小火箭,会自动生成如下指令:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
,在命令行中执行,会在 /etc/docker/ 目录下生成一个 daemon.json 文件,文件内容如下:{"registry-mirrors": ["http://74f21445.m.daocloud.io"], "insecure-registries": []}
, “insecure-registries”: [] 部分需要手动添加。 - 在 daemon.json 文件中添加 本机的 ip:端口
{"registry-mirrors": ["http://74f21445.m.daocloud.io"], "insecure-registries": [“127.0.0.1:5000”]}
- 拉取 registry 镜像
docker pull registry
- 基于 registry 镜像启动仓库容器
docker run -itd -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry-server registry
参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
如果宿主机中没有registry目录需要手动创建 - 执行如下命令,查验 registry 是否正常运行
curl 127.0.0.1:5000/v2/_catalog
- 给img 添加tag
只有给镜像添加上tag的标识之后,才能推送到私有仓库,否则仓库不认识它
docker tag nginx 127.0.0.1:5000/nginx
- 推送img 到私有仓库
docker push 127.0.0.1:5000/nginx
- 测试,删除本地镜像,从私有仓库拉取
docker rm 127.0.0.1:5000/nginx
docker pull 127.0.0.1:5000/nginx