一、简单了解

Docker Hub 和阿里云这样的公共镜像仓库某些情况下不太方便使用,涉及机密的公司不能提供镜像给公网,需要创建本地私人仓库供团队使用,其中Docker Hub 官方地址:https://hub.docker.com/ Docker Registry是官方提供的工具,可用于构建私有镜像仓库。

二、本地镜像推送到私有库步骤

1 拉取 registry 镜像

docker pull registry

2 运行私有库Registry,相当于本地有个私有Docker Hub

docker run -d -p 5000:5000 -v /summeruse/myregistry/:/tmp/registry --privileged=true registry

说明:

-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-p:指定端口映射
默认情况下,仓库被创建在容器的/var/lib/registry/目录下,建议自行用容器卷映射(会在下一篇中记笔记),方便宿主机联调
/summeruse/myregistry/:也可根据自己的命名风格写

3 案例演示:ubuntu安装ifconfig命令




docker run -it ubuntu /bin/bash
apt-get update
apt-get install net-tools

docker 上传私有haber docker push到私有仓库_服务器


docker commit -m="ifconfig cmd add" -a="summer" 006636c2b78d summerubuntu:1.2

说明:commit用法

docker commit -m="提交的描述信息" -a="作者" 容器ID 创建的目标镜像名:[标签名]

docker 上传私有haber docker push到私有仓库_ubuntu_02


docker run -it dd73ca32c43c /bin/bash

4 curl验证私服库上有哪些镜像

curl -XGET http://主机ip地址:5000/v2/_catalog

注意:填写自己host主机ip地址,如果是阿里云或者其它的云服务器一定要在安全组中放开相应端口,否则会出现超时连接错误。

5 将新镜像summerubuntu:1.2 修改符合私服规范的Tag

docker tag 镜像名:Tag Host:Port/Repository:Tag
docker tag summerubuntu:1.2 主机ip地址:5000/summerubuntu:1.2

docker 上传私有haber docker push到私有仓库_docker_03

6 修改配置文件使之支持http

vim /etc/docker/daemon.json

添加

"insecure-registries":["ip:5000"]

注意:docker默认不允许http方式推送镜像,通过配置来取消这个限制。如果不生效,重启docker

systemctl restart docker
systemctl status docker
docker run -d -p 5000:5000 -v /summeruse/myregistry/:/tmp/registry --privileged=true registry

7 push推送到私服库

docker push 主机ip:5000/summerubuntu:1.2

8 curl验证私服库上有哪些镜像2

curl -XGET http://主机ip:5000/v2/_catalog

docker 上传私有haber docker push到私有仓库_docker 上传私有haber_04

9 pull到本地运行

先删除本地镜像

docker images
docker rmi -f 镜像ID
docker pull ip:5000/summerubuntu:1.2

docker 上传私有haber docker push到私有仓库_docker_05


下一篇:Docker_基础篇_7.Docker容器数据卷