-
docker搭建本地仓库
2019-02-17 17:01:05操作概览: ...3, 往本地仓库里: pull /push 镜像 1,拉取registry镜像 root@boot2docker:/home/docker# docker pull registry Using default tag: latest latest: Pulling from li...企业级镜像仓库(harbor)
harbor离线安装包下载:https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0-rc1.tgz
#解压后的目录 [root@jenkins harbor]# ls common docker-compose.yml harbor.v1.8.2.tar.gz harbor.yml install.sh LICENSE prepare #安装: 下载镜像, docker-compose启动所有依赖服务 (先准备好docker, docker-compose环境) ./prepare ./install.sh #验证 [root@jenkins harbor]# docker ps |grep harbor 4e7d8f44cce3 goharbor/nginx-photon:v1.8.2 "nginx -g 'daemon of…" 12 days ago Up 12 days (healthy) 0.0.0.0:80->80/tcp nginx 017af1a150f8 goharbor/harbor-jobservice:v1.8.2 "/harbor/start.sh" 12 days ago Up 12 days harbor-jobservice e19b6e68bac1 goharbor/harbor-portal:v1.8.2 "nginx -g 'daemon of…" 12 days ago Up 12 days (healthy) 80/tcp harbor-portal 733001745b91 goharbor/harbor-core:v1.8.2 "/harbor/start.sh" 12 days ago Up 12 days (healthy) harbor-core 631adfd29953 goharbor/harbor-registryctl:v1.8.2 "/harbor/start.sh" 12 days ago Up 12 days (healthy) registryctl 639107c9be83 goharbor/registry-photon:v2.7.1-patch-2819-v1.8.2 "/entrypoint.sh /etc…" 12 days ago Up 12 days (healthy) 5000/tcp registry 7376bad45550 goharbor/harbor-db:v1.8.2 "/entrypoint.sh post…" 12 days ago Up 12 days (healthy) 5432/tcp harbor-db a02019fd00ed goharbor/redis-photon:v1.8.2 "docker-entrypoint.s…" 12 days ago Up 12 days 6379/tcp redis b2f44bf3e901 goharbor/harbor-log:v1.8.2 "/bin/sh -c /usr/loc…" 12 days ago Up 12 days (healthy) 127.0.0.1:1514->10514/tcp harbor-log
访问80 ui端口: admin/Harbor12345
操作概览:
- 1, 拉取启动仓库服务的:image文件
- 2, 运行仓库image, 创建容器(能提供服务的仓库)
- 3, 往本地仓库里: pull /push 镜像
1,拉取registry镜像
root@boot2docker:/home/docker# docker pull registry Using default tag: latest latest: Pulling from library/registry 169185f82c45: Pull complete 046e2d030894: Pull complete 188836fddeeb: Pull complete 832744537747: Pull complete 7ceea07e80be: Pull complete Digest: sha256:870474507964d8e7d8c3b53bcfa738e3356d2747a42adad26d0d81ef4479eb1b Status: Downloaded newer image for registry:latest
2, 启动本地仓库
root@boot2docker:/home/docker# docker volume create registry root@boot2docker:/home/docker# docker run -d -p 5000:5000 --name registry -v registry:/var/lib/registry registry 6d445518da5f7e99369490ce8f4505d922d2ad7ee791de6c9a5c62899038d144 root@boot2docker:/home/docker# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS P ORTS NAMES 6d445518da5f registry "/entrypoint.sh /etc…" 10 seconds ago Up 8 seconds 0 .0.0.0:5000->5000/tcp registry root@boot2docker:/home/docker# netstat -nltp |grep 5000 tcp 0 0 :::5000 :::* LISTEN 3954/docker-proxy
3, 在本地仓库里: push镜像
root@boot2docker:/home/docker# docker tag sath89/oracle-11g localhost:5000/oracle-11g root@boot2docker:/home/docker# docker push localhost:5000/oracle-11g The push refers to repository [localhost:5000/oracle-11g] be5668ce5ec1: Pushed 5f70bf18a086: Pushed bab207619a1b: Pushing 2.867GB/6.848GB bab207619a1b: Pushing 2.964GB/6.848GB bab207619a1b: Pushing 3.237GB/6.848GB bab207619a1b: Pushed latest: digest: sha256:c0f71c9aae0edd4a0aafea99e81e0d43a37d1b30d3c70003609d8ca58f8958b2 size: 1770 #查看仓库里的镜像 root@boot2docker:/home/docker# curl -X GET localhost:5000/v2/_catalog {"repositories":["oracle-11g"]}
4, 在别的机器上: 拉取本地仓库的镜像
# 1,添加仓库地址 [root@centos7 ~]# echo '{ "insecure-registries":["192.168.226.138:5000"] }' > /etc/docker/daemon.json [root@centos7 ~]# systemctl restart docker #2,拉取本地仓库的镜像 [root@centos7 ~]# docker pull 192.168.226.138:5000/oracle-11g Using default tag: latest latest: Pulling from oracle-11g 76450a07fc60: Pull complete 4f4fb700ef54: Pull complete 822cd3a01245: Pull complete Digest: sha256:c0f71c9aae0edd4a0aafea99e81e0d43a37d1b30d3c70003609d8ca58f8958b2 Status: Downloaded newer image for 192.168.226.138:5000/oracle-11g:latest # 3, 查看结果 [root@centos7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.226.138:5000/oracle-11g latest 3fa112fd3642 3 years ago 6.85GB
-
Docker 搭建本地仓库
2018-10-18 16:12:39Docker Hub 公有仓库存在以下...解决方案使用本地registryDocker已经讲registry开源了,同时在Docker Hub上也有官方镜像registry我们可以直接使用:(1)启动registry容器shell>docker run -d -p 5000:5000 -v /...Docker Hub 公有仓库存在以下缺点:
1、网络依赖性强,链接速度限制;
2、私有化资料存放网络不安全
3、私有化仓库需要收费,存在安全风险解决方案使用本地registry
Docker已经讲registry开源了,同时在Docker Hub上也有官方镜像registry
我们可以直接使用:
(1)启动registry容器
shell>docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
使用registry:2的镜像
-d 后台运行
-p 讲容器的5000端口映射到主机的5000端口
-v 将容器/var/lib/registry目录映射到Host的/myregistry/docker,用于存放镜像数据验证:shell>docker ps 查看仓库容器是否启动
(2)本地下载一个测试镜像
shell>docker pull centos(3)通过docker tag 重命名本地镜像,与registry匹配
shell>docker tag centos 仓库服务器地址:5000/用户名/centos:v1
shell>docker tag centos x.x.x.x:5000/testname/centos:v1
repository的完整格式为:Docker Hub 上可以省略[registry-host]:[port],默认为docker.io
(4)docker pull/push测试
shell>docker push x.x.x.x:5000/testname/centos:v1
shell>docker pull x.x.x.x:5000/testname/centos:v1(5)上传的镜像在该目录下
/myregistry/docker/registry/v2/repositories/docker39/cetnos_httpd/提示:
shell>docker pull x.x.x.x:5000/testname/cetnos
Using default tag: latest
Error response from daemon: Get https://x.x.x.x:5000/v2/: http: server gave HTTP response to HTTPS client
这是docker不支持https
centos系统通过:修改或者添加daemon.json文件,重启docker服务即可
shell>vim /etc/sysconfig/daemon.json
{"insecure-registries":["x.x.x.x:5000"]}shell>systemctl restart docker //重启服务后,记得启动registry仓库容器
转载于:https://blog.51cto.com/7603402/2303926
-
docker 搭建本地仓库
2018-06-29 10:26:49部署Registry使用docker pull命令获取registry的image# sudo docker pull registry:2.1.1使用docker run使用下载的registry的image启动一个容器# sudo docker run -d -p 5000:5000 -v /opt/reg...1. 环境准备
Linux版本:Centos7
docker版本:17.05.0-ce
2. 部署Registry
使用docker pull命令获取registry的image
# sudo docker pull registry:2.1.1
使用docker run使用下载的registry的image启动一个容器
# sudo docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry --restart=always --name registry registry:2.1.1
查看启动的容器
# sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ebb16548e9d3 registry:2.1.1 "/bin/registry /et..." 12 seconds ago Up 11 seconds 0.0.0.0:5000->5000/tcp registry
打开浏览器,访问http://IP:5000/v2/_catalog,可以查看到{"repositories": []}表示现在仓库中,没有镜像images
现在,下载一个镜像,然后传到本地仓库中,以下以busybox镜像为例
在本地host上面,给busybox添加新的tag# sudo docker pull busybox Using default tag: latest latest: Pulling from library/busybox 27144aa8f1b9: Pull complete Digest: sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642 Status: Downloaded newer image for busybox:latest # sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest c30178c5239f Less than a second ago 1.11 MB hello-world latest 1815c82652c0 20 hours ago 1.84 kB registry 2.1.1 52bb991b482e 20 months ago 220 MB
将镜像上传到仓库中# sudo docker tag busybox 192.168.61.128:5000/busybox # sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.61.128:5000/busybox latest c30178c5239f Less than a second ago 1.11 MB busybox latest c30178c5239f Less than a second ago 1.11 MB hello-world latest 1815c82652c0 20 hours ago 1.84 kB registry 2.1.1 52bb991b482e 20 months ago 220 MB
出现上述提示,表示本地的仓库默认使用的是https进行上传,如果是非https就会出现以上的提示# sudo docker push 192.168.61.128:5000/busybox The push refers to a repository [192.168.61.128:5000/busybox] Get https://192.168.61.128:5000/v1/_ping: http: server gave HTTP response to HTTPS client
解决方式,可以参考一下方式
修改文件/usr/lib/systemd/system/docker.service,在ExecStart=/usr/bin/dockerd后面添加--insecure-registry 192.168.61.128:5000,然后重启docker服务
重新上传# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target firewalld.service [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd --insecure-registry 192.168.61.128:5000 ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process [Install] WantedBy=multi-user.target # sudo systemctl daemon-reload && sudo systemctl restart docker.service
# sudo docker push 192.168.61.128:5000/busybox The push refers to a repository [192.168.61.128:5000/busybox] 3a1dff9afffd: Pushed latest: digest: sha256:417ae70baa235876876e723f4b630afa7f91a113025d70361597656b5cf0481b size: 2136
打开浏览器,访问http://IP:5000/v2/_catalog,可以查看到{"repositories": ["busybox"]}表示现在仓库中,存在镜像busybox这一个
-
Docker搭建本地仓库registry
2018-08-12 20:05:00最近了解了harbor,也可以搭建本地仓库,还有图形化界面,很方便 我们上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。 所以我们就搭建本地Registry,来管理我们自己的仓库。...最近了解了harbor,也可以搭建本地仓库,还有图形化界面,很方便
我们上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。
所以我们就搭建本地Registry,来管理我们自己的仓库。Docker 已经将 Registry 开源了,我们可以直接docker pull,
Docker Hub 上也有官方的镜像 Registry,我们可以注册一个账号,docker login 登陆,然后下载镜像。
一,部署Registry
运行命令 docker pull registry
二,运行容器
-d
是后台启动容器。-p
将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。-v
将容器 /var/lib/registry 目录映射到 Host 的 /myregistry,用于存放镜像数据。上传到本地的镜像保存在/myregistry/docker/registry/v2/repositories/ 下面
查看正在运行的容器
打开浏览器,访问http://127.0.0.01:5000/v2/_catalog,可以查看到{"repositories": []} 表示现在仓库中,没有镜像images
三、在本地host上,重命名镜像,添加新的tag,使之与registry 相匹配
以busybox镜像为例,上传到本地仓库中,或者从Docker Hub 下载也可以、
镜像名称由 repository 和 tag 两部分组成,默认为latest。可以在docker build 时用格式image:tag指定,
而 repository 的完整格式为:[registry-host]:[port]/[username]/xxx
四、上传镜像到仓库中
成功会出现上述提示,表示本地的仓库默认使用的是https进行上传,那行是latest是重新上传出现的。
如果你在push镜像的时候出现问题,可能是因为我们启动的registry服务不是安全可信赖的.这个时候我们需要修改docker的配置文件/etc/default/docker,添加下面的内容: "- - insecure-registry 127.0.0.1:5000", 再重启docker 服务
五、删除下载的镜像,从本地镜像下载。
docker rmi 127.0.0.1:5000/busybox-test 删除镜像
docker pull 从本地镜像下载。
docker images 查看下载成功
最后在宿主机浏览器中访问127.0.0.1:5000/v2/_catalog,出现上传的镜像。
在此路径下,可以查看上传到本地的镜像。
-
Docker搭建本地仓库详细过程
2020-02-06 18:35:58为什么要搭建本地仓库? 1.节约带宽:因为如果用docker或阿里云官方的仓库走的互联网浪费带宽,而且慢。 2.提供资源利用和安全:因为公司内部的镜像,推送到本地仓库,更方便公司内部人员用,而且安全性高。 搭建... -
docker搭建本地仓库搭建和使用
2019-07-15 21:15:34搭建本地仓库,可以使其他主机在没有外部网络的情况下可以直接使用本机的仓库镜像 将registry包导入镜像仓库 [root@foundation17 docker]# docker load -i registry.tar f15ce52fc004: Loading layer [============... -
Docker搭建本地仓库并推送镜像到本地仓库
2018-11-06 15:01:47Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库; 一、本地下载registry sudo docker pull registry:2 二、启动容器运行registry镜像 docker run -d -p 5000:5000 -v /opt/... -
docker搭建本地仓库并制作自己的镜像
2018-09-24 13:14:001. 搭建本地仓库1.1 下载仓库镜像1.2 启动仓库容器2. 在CentOS容器中安装JDK2.1 下载CentOS容器2.2 运行Linux容器:2.3 将JDK复制到myCentos容器中2.4 进入容器2.5 解压JDK2.6 配置环境变量2.6.1 刷新环境变量2.6.2.... -
Docker搭建本地仓库,私有仓库(设置加密以及访问控制)
2019-08-20 20:49:25一.概念讲解 1.仓库分为公开仓库(Public)和私有...2.当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使... -
Docker实验(六)Docker搭建本地仓库,私有仓库(设置加密以及访问控制)
2019-07-07 16:15:44一.概念讲解 1.仓库分为公开仓库(Public)和私有...2.当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使...