Docker 创建本地仓库registry

搭建docker私有仓库也是通过docker,真是就地取材。

1、首先下载registry镜像

docker pull registry

2、启动registry镜像的容器

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

说明:

-d ==> 作为daemon进程启动,也就是后台启动

-v /myregistry:/tmp/registry ==> 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录/myregistry挂载到容器,可以防止容器意外停止后镜像的丢失。

-p 5000:5000 ==> 前一个5000是host的端口,后一个是容器的端口。这里是将容器的5000端口映射到host的5000端口。

在客户机器上pull  本地仓库的时候会报https的错误

因为Docker从1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。修改docker启动配置文件:

vim  /usr/lib/systemd/system/docker.service 

找到 ExecStart

ExecStart=/usr/bin/dockerd  --insecure-registry 192.168.134.129:5000

红色字体为添加的

重启docker:

systemctl daemon-reload
systemctl restart docker

3.添加开放5000端口到firewall防火墙

firewall-cmd --add-port 5000/tcp(可以使用永久添加)

4.在客户机器中创建文件

然后在”/etc/docker/“目录下,创建”daemon.json“文件。并添加
[root@docker ~]# cat /etc/docker/daemon.json 
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["192.168.134.129:5000"]
}

注意书写格式为json格式,有严格的书写要求;
第1行是国内镜像源
第2行是docker私有仓库地址;192.168.134.129(这里用的是域名也可以是IP)就是docker私有仓库的地

 

测试:

在仓库机器192.168.129中修改下helle-world 的tag

docker tag centos_jdk8_tomcat8 192.168.134.129:5000/centos_jdk8_tomcat8

然后 使用push 到本地私有仓库

上传

上传镜像到私有registry

# docker push 192.168.134.129:5000/

在私有registry上查看镜像

# curl -XGET http://192.168.134.129:5000/v2/_catalog

{"repositories":["centos_jdk8_tomcat8","helloworld"]}

出现上面的信息,表示上传成功。

在客户端机器上进行下载本地仓库镜像

执行命令:docker pull 192.168.134.129:5000/centos_jdk8_tomcat8

启动容器:

docker run -d -p 6000:8080 192.168.134.129:5000/centos_jdk8_tomcat8

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建本地Docker镜像仓库,可以将镜像保存在本地,方便快速地共享和部署。以下是创建Docker本地镜像仓库的步骤: 1. 安装Docker 如果您还没有安装Docker,请先安装Docker。请按照以下步骤进行操作: - 在Linux上安装Docker:https://docs.docker.com/engine/install/ - 在Windows上安装Docker:https://docs.docker.com/docker-for-windows/install/ - 在Mac上安装Docker:https://docs.docker.com/docker-for-mac/install/ 2. 配置Docker镜像仓库 创建一个目录作为Docker镜像仓库的存储路径,例如:/opt/docker-registry。在该目录下创建一个名为config.yml的文件,用于配置Docker镜像仓库的认证和访问控制。 ``` version: 0.1 log: level: debug formatter: text storage: filesystem: rootdirectory: /var/lib/docker-registry auth: htpasswd: realm: basic-realm path: /opt/docker-registry/auth/htpasswd ``` 在以上配置中,我们使用htpasswd进行认证。我们需要创建一个htpasswd文件,用于存储用户名和密码。可以使用以下命令创建一个htpasswd文件: ``` mkdir /opt/docker-registry/auth htpasswd -bBc /opt/docker-registry/auth/htpasswd myuser mypassword ``` 这将创建一个包含用户名和密码的htpasswd文件。 3. 运行Docker镜像仓库 使用以下命令启动Docker镜像仓库: ``` docker run -d -p 5000:5000 --restart=always --name registry \ -v /opt/docker-registry:/var/lib/docker-registry \ -v /opt/docker-registry/config.yml:/etc/docker/registry/config.yml \ registry:2 ``` 这将在后台运行Docker镜像仓库,并将其暴露在5000端口上。 4. 测试Docker镜像仓库 现在我们可以测试Docker镜像仓库是否正常工作。使用以下命令从默认的Docker Hub拉取一个镜像,并将其推送到本地的Docker镜像仓库中: ``` docker pull alpine docker tag alpine localhost:5000/alpine docker push localhost:5000/alpine ``` 这将从Docker Hub拉取alpine镜像,并将其标记为localhost:5000/alpine。然后,它将推送该镜像到本地的Docker镜像仓库中。 5. 使用Docker镜像仓库 现在我们可以使用本地的Docker镜像仓库来拉取和推送镜像。使用以下命令从本地的Docker镜像仓库中拉取alpine镜像: ``` docker pull localhost:5000/alpine ``` 这将从本地的Docker镜像仓库中拉取alpine镜像。 我们还可以将其他镜像推送到本地的Docker镜像仓库中,并使用它们来部署应用程序。 以上就是创建Docker本地镜像仓库的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值