快速搭建本地镜像仓库
1.首先确保已经安装了docker
若未安装,使用如下命令进行安装即可:
yum install -y docker
2.下载Registry镜像并启动
(1)下载Registry镜像: docker pull registry
(2)运行仓库镜像
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --privileged=true docker.io/registry
参数解释:
-d 后台运行;
-p 指定端口映射(即将本地xxx端口映射给仓库服务端口5000)
-v 挂载目录(按自己要求可修改)
--privileged=true 给容器可扩展的特权
docker.io/registry 为官方镜像下载地址
具体参数含义可查看docker相关文档。
通过命令curl http://your-server-ip:5000/v2/_catalog
可以查看仓库中的镜像;
your-server-ip为当前服务器ip;
会返回一个json数据串{}
,因为仓库还没有镜像;
3.上传镜像
(1)上传前首先将镜像打上版本标签:
docker tag your-image-name:tagame your-server-ip:5000/your-image-name:tagname
即命令为:docker tag 镜像名:版本标签 服务器ip:5000/新镜像名称:版本标签;
即将来镜像会上传至该服务地址ip:5000/
,镜像名称为your-image-name:tagname
;
将来即可通过此规则名称拉取下载镜像.
(2)上传镜像:
docker push your-server-ip:5000/your-image-name:tagname
即docker push + 打标签后的镜像
;
这时通过前述命令查看仓库中镜像,如下:
curl http://your-server-ip:5000/v2/_catalog
正常的话将会出现刚才上传的镜像名称;
若出现错误信息:error: Get https://ip:port/v1/_ping: http: server gave HTTP response to HTTPS client.
则需配置仓库为可信任,编辑文件/etc/docker/daemon.json
,没有则会创建;
使用命令:
vi /etc/docker/daemon.json
添加如下内容:
{
"insecure-registries" : [ "your-server-ip:5000" ]
}
your-server-ip
为你的服务器ip;
为了使得配置生效,重新启动docker服务:
systemctl restart docker
4、从仓库下载镜像
docker pull your-server-ip:5000/your-image-name:tagname
命令相关解释如前所述;
(1)如果其他服务器需要下载前述搭建的仓库中的镜像,则需安装docker并启动,然后使用命令:
docker pull 镜像仓库服务器ip:5000/镜像名称
(连同版本,不加版本默认latest最新)
此时若发生错误:
Get https://ip:port/v1/_ping: http: server gave HTTP response to HTTPS client.
则如同前述,把仓库添加为可信任:
使用命令: vi /etc/docker/daemon.json
添加如下内容:
{
"insecure-registries" : [ "仓库ip:5000" ]
}
注意:这里的ip需要为仓库的ip,即将仓库添加到了可信任的访问.
(2)其他服务器上传镜像至创建好的仓库服务器上:
先打tag,命令为:
docker tag 本地镜像 仓库服务器地址:5000/your-image-name:tagname
再上传镜像:
docker push 仓库服务器地址:5000/your-image-name:tagname
即为docker push + 刚才打tag后的镜像
;
至此便简单的搭建了一个本地私有仓库。
因为第一次记录东西,如有错误,不足的地方,还望大家一起学习!