docker系列-搭建本地registry容器的各种坑

总结的坑:
a.关注daemon.json的书写格式。一句话可以错好几个点。
b.tag要清楚的表示registry服务器的信息,才能push上传成功。不是可有可无的信息。
c.tag中有版本号要清楚的写上。系统自动补全的是用latest。

####################################################################

搭建过程:
前提:通过docker pull registry下载了registry

1.新建的/etc/docker/daemon.json
[[email protected] docker]# cat daemon.json
{
"insecure-registries": ["172.17.0.1:5000"]
}
下面这种报错,是因为新建的/etc/docker/daemon.json文件还没有成功。
[[email protected] ~]# docker push 172.17.0.1:5000/hello-world
The push refers to repository [172.17.0.1:5000/hello-world]
Get https://172.17.0.1:5000/v2/: http: server gave HTTP response to HTTPS client

容易出错的4个地方:
a.错误的写成 insecure-registry.
b.错误的写成 http://172.17.0.1:5000
c.错误的用了容器的IP 172.17.0.2
d.忘记重启docker服务
#########################################################################

2.本地是否建立成功registry,可以通过docker info 查看
[[email protected] docker]# docker info | grep -i -A 3 regis
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
172.17.0.1:5000
127.0.0.0/8
Live Restore Enabled: false
##########################################################################

3. 启动本地registry容器,push上传image到本地registry容器
mkdir -p /data/registry
##host上创建目录volume给容器做存储
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name local_registry registry
##启动容器,对外用5000端口,第一个5000是host的端口,第二个5000是容器端口
[[email protected] docker]# docker ps | grep -i local_registry
b4c6b769aabc registry "/entrypoint.sh /etc…" About an hour ago Up 30 minutes 0.0.0.0:5000->5000/tcp local_registry
##检查registry容器是否启动

[[email protected] ~]# docker tag hello-world 172.17.0.1:5000/hello-world:v1
[[email protected] ~]# docker push 172.17.0.1:5000/hello-world:v1
The push refers to repository [172.17.0.1:5000/hello-world]
af0b15c8625b: Pushed
v1: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
[[email protected] ~]#

##注意:docker tag hello-world 172.17.0.1:5000/hello-world:v1 一定要打上正确的tag,也就是tag一定要清楚表示清楚是哪个registry。
不然,docker不知道是要将image上传到哪个registry服务器。也就是说tag包含了registry服务器的信息,不是一个可有可无的东西。

##########################################################################

4.删除host上有的images。测试从容器pull下来image。
注意:删除或者上传是如果有版本号不是latest,需要附加上。系统默认是自动补充latest,这样执行命令后反馈找不到

[[email protected] docker]# docker rmi 172.17.0.1:5000/hello-world
Error: No such image: 172.17.0.1:5000/hello-world
[[email protected] docker]# docker rmi 172.17.0.1:5000/hello-world:v1
Untagged: 172.17.0.1:5000/hello-world:v1
Untagged: 172.17.0.1:5000/[email protected]:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
[[email protected] docker]#

[[email protected] docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb latest 3a2ef06682ac 9 hours ago 356MB
wordpress latest a541a1a59631 2 days ago 447MB
busybox latest e4db68de4ff2 2 weeks ago 1.22MB
registry.aliyuncs.com/google_containers/kube-proxy v1.14.0 5cd54e388aba 3 months ago 82.1MB
registry.cn-beijing.aliyuncs.com/imcto/flannel v0.11.0-amd64 03ad33ab3dd7 3 months ago 52.6MB
registry latest f32a97de94e1 3 months ago 25.8MB
[[email protected] docker]#

[[email protected] docker]# docker pull 172.17.0.1:5000/hello-world
Using default tag: latest
Error response from daemon: manifest for 172.17.0.1:5000/hello-world:latest not found

[[email protected] docker]# docker pull 172.17.0.1:5000/hello-world:v1
v1: Pulling from hello-world
1b930d010525: Pull complete
Digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
Status: Downloaded newer image for 172.17.0.1:5000/hello-world:v1
[[email protected] docker]#
[[email protected] docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb latest 3a2ef06682ac 9 hours ago 356MB
wordpress latest a541a1a59631 2 days ago 447MB
busybox latest e4db68de4ff2 2 weeks ago 1.22MB
registry.cn-beijing.aliyuncs.com/imcto/flannel v0.11.0-amd64 03ad33ab3dd7 3 months ago 52.6MB
registry latest f32a97de94e1 3 months ago 25.8MB
172.17.0.1:5000/hello-world v1 fce289e99eb9 6 months ago 1.84kB
[[email protected] docker]#

原文地址:https://blog.51cto.com/jsahz/2417236

时间: 2024-10-03 19:38:11

docker系列-搭建本地registry容器的各种坑的相关文章

搭建本地 Registry - 每天5分钟玩转 Docker 容器技术(20)

Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的. 安全原因很多组织不允许将镜像放到外网. 解决方案就是搭建本地的 Registry. Docker 已经将 Registry 开源了,同时在 Docker Hub 上也有官方的镜像 registry.下面我们就在 Docker 中运行自己的 registry. 启动 regist

第 3 章 镜像 - 020 - 搭建本地 Registry

Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的. 安全原因很多组织不允许将镜像放到外网. 解决方案就是搭建本地的 Registry. 在 Docker Hub 上也有官方的镜像 registry.我们可以在 Docker 中运行自己的 registry. 启动 registry 容器 1 [email protected]:~

Docker基础-搭建本地私有仓库

1.使用registry镜像创建私有仓库 安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 registry 这条命令将自动下载并启动一个registry容器,创建本地的私有仓库服务.默认会将仓库创建在容器的/tmp/registry目录下.可以通过-v参数来将镜像文件存放在本地指定路径 例如:将上传的镜像放到/opt/data/registry目录: docker run -d -p 5000:50

docker学习-构建本地Registry

保存和分发镜像的最直接的方法就是使用Docker H u b,它是Docker公司维护的公共Regsitry,用户可以将自己的镜像保存到Docker H u b 免费的repository中.如果不希望别人访问自己的镜像,也可以购买私有repository.一般我们可以使用Docker H u b上传和下载镜像,虽然十分方便,但是还是有些限制,比如:1.需要外网连接,而且上传和下载速度慢2.上传到Docker H u b 的镜像任何人都能够访问,虽然可以用私人repositroy,但不是免费的3

Docker系列(二)---容器

创建容器 新建容器 方法一: [[email protected]]# docker run -it centos:6 echo "hello" hello 方法二: [[email protected]]# docker create -it centos:6 echo "hello" c97b4ca48ce2f2065230398c57955c9ab9a31a3af9301217a626a16471697451 使用方法二创建的容易处于停止状态,使用docker

Docker搭建本地私有仓库

安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制的Docker image便成了刚需.Docker Registry一如既往的继承了"Docker坑多"的特点,为此这里将自己搭建"各类"Registry过程中执行的步骤.遇到的问题记录下来,为己备忘,为他参考. Docker在2015年推出了distribution项

利用Docker搭建本地https环境的完整步骤

利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 什么是 HTTPS 我们都知道 Web App 的运行都是建立在网络应用层 HTTP 协议的,HTTP 协议能够进行客户端和服务器之间的请求和返回.但是这个过程是明文传输的,当请求被抓包后传输内容很容易被篡改,这对用户的安全性来说是极其严重的威胁.PWA 应

docker使用registry搭建本地私有仓库

参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库. 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 接下来我们就大致说一下如何在本地搭建

搭建本地docker registry

搭建本地docker registry: docker pull registry:2 mkdir /home/registry docker run -d -p 5000:5000 --name registry -v /home/registry:/var/lib/registry registry:2 docker ps -a netstat -ntpl | grep 5000 上传image到docker hub: docker tag ubuntu:16.04 localhost:50