话不多说,大家简单了解一下 docker pull 是从哪里拉取的镜像,当我们生产中的镜像不想公开,那么创建自己公司的私有仓库
这里给大家提供两种方式
第一种方式,没有账户管理
1.搭建
docker 官方提供了一个搭建私有仓库的镜像
docker pull registry:2
拉取之后可以使用docker images 查看
创建本地简单的仓库
docker run -d --restart=always -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。
浏览器访问http://ip地址:5000/v2,出现“{}”说明registry运行正常。
要通过docker tag将该镜像标志为要推送到私有仓库:
docker tag nginx:latest localhost:5000/nginx:latest
通过 docker push 命令将 nginx 镜像 push到私有仓库中:
docker push localhost:5000/nginx:latest
访问 http://127.0.0.1:5000/v2/_catalog 查看私有仓库目录,可以看到刚上传的镜像信息了:
第二种方式 harbor 的搭建
docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
1.搭建
下载
地址:https://github.com/goharbor/harbor/releases 本文是有 v1.10.0
配置
解压下载的安装包 harbor-offline-installer-v1.10.0.tgz
tar -xvf harbor-offline-installer-v1.10.0.tgz
vi harbor.yaml
#hostname 改为本地ip
hostname = 192.168.31.143:9090
如果对端口号没有特殊要求,可以使用默认的80或者443,但是如果不想使用https协议,注意注释相关https信息 ,只保留http相关信息,这里由于我的80端口被占用了
我选择port:9090
如果对其他配置有要求,可以自行修改
修改之后,运行./install.sh即可。
./install.sh
但是这是一切条件准备就绪的情况下
安装harbor私有仓库需要安装 docker和docker-compose
docekr --version
docker-compose --version
以上命令运行之后,都能看到版本信息即可
docker 安装比较简单,但在安装docker-compose 时候遇到一些问题(可能没有安装依赖包,比如pip 或者poython-devl)
安装配置源
yum -y install epel-release
安装pip
yum -y install python-pip
pip --veriosn 查看可能不是最新版本
更新pip
pip install --upgrade pip
安装docker-compose
pip install docker-compose
查看版本
docker-compose --version
看到版本即可
但是我遇到一个问题,提示我没有安装python-devl包,好的,我安装
yum install python-devel
继续
pip install docker-compose
还是不行,提示我more-itertools文件有问题,好的,我更新
pip install 'more-itertools<=5.0.0'
继续
pip install docker-compose
安装成功
docker-compose --version 可以看到版本信息
好的,现在回到正题上吗,运行./install.sh 之后,根据提示信息,可进行web页面访问。
浏览器中输入 IP地址:9090
弹出登录页面即可,说明安装成功
docker push 和使用公有仓库类似,需要账户认证,但是上传是有匹配规则的,大家注意。