Docker如何将本地镜像推送到私有库

 更新时间:2025年06月27日 08:59:09   作者:我不是少爷.  
这篇文章主要介绍了Docker如何将本地镜像推送到私有库的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.下载镜像支持

Docker Registry镜像是使用官方镜像来启动私有仓库

docker pull registry#拉取镜像
docker images#查看镜像

使用如上命令来拉取镜像

1.png

2.运行镜像

运行私有库Registry,相当于你在本地创建了一个私有库,即Docker hub。

默认情况,仓库被创建在容器的/var/lib/registry目录下。

我建议自行使用容器卷映射,可以有利于宿主机的协调管理。

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

/wang/myregistry是宿主机的目录,也许这个目录你并没有一开始就创建,无需担心,在执行这个命令后,会自动将这个目录创建好。/tmp/registry是容器内的目录。

1.png

3.案例

案例将以ubuntu为模板,演示如何将镜像推送至私有库与获取。

(1)从仓库获取ubuntu镜像到本地并运行。

docker pull ubuntu

如果没有特殊版本要求,那直接运行pull命令拉取镜像会直接从仓库获取最新版的镜像到本地。

(2)运行镜像

我们先将镜像运行,然后进入容器。原始的ubuntu是不支持ifconfig的命令,所以我们可以以这个来分辨镜像的区别。

docker images#查看是否成功拉取ubuntu
docker run -it ubuntu /bin/bash#运行ubuntu镜像成为一个容器并进入
apt-get update
apt-get install net-tools#这两行命令是让这个容器拥有支持ifconfig命令的环境

1.png

2.png

我们还可以先验证一下我们私有仓库中是否有镜像。

curl -XGET http://192.168.244.188:5000/v2/_catalog

1.png

(3)打包-上传-查看-拉取

每个镜像都不一样,所以仓库一般会设置统一的规范,在上传镜像前,我们需要对镜像进行打包。

docker tag ubuntu 192.168.244.188:5000/myubuntu:1.1#打包
docker images#查看是否打包成功

公式是:docker tag (镜像名):Tag Host:port/Repository:Tag 

温馨提示:每个人的host主机ip地址都不一样,所以请不要照着复制。

1.png

我们需要修改主机的配置文件以让其支持http。

vi /etc/docker/daemon.json#修改配置文件

{
 "registry-mirrors":["https://aa25jngu.mirror.aliyuncs.com"],
 "insecure-registries":["192.168.244.188:5000"]
}                                        #增添内容

在修改完配置文件后,重启docker服务,启动registry服务。因为docker服务重启,所以默认registry服务会停止。

systemctl restart docker.service#重启服务
docker start (registry进程ID)#启动registry服务

现在,我们可以开始推送镜像到我们的私有库中了。

docker push 192.168.244.188:5000/myubuntu:1.1

1.png

验证看看我们是否上传成功。

curl -XGET http://192.168.244.188:5000/v2/_catalog

1.png

到了检验成果的时候了,首先我们移除本身的ubutun镜像,然后再去拉取我们上传的镜像,如果我们的实验成功,那么我们拉取的ubuntu镜像是可以直接进行ifconfig命令的。

docker pull 192.168.244.188/myubuntu:1.1#拉取镜像
docker run -it <容器id> /bin/bash

1.png

2.png

1.png

2.png

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker搭建简单的应用栈与容器Hello World访问详解

    Docker搭建简单的应用栈与容器Hello World访问详解

    这篇文章主要介绍了Docker搭建简单的应用栈与容器Hello World访问,结合实例形式详细分析了Docker应用容器栈的获取、互联、启动、配置以及应用访问测试相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • docker完整配置nginx+php+mysql的方法步骤

    docker完整配置nginx+php+mysql的方法步骤

    这篇文章主要介绍了docker完整配置nginx+php+mysql的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • docker在ubuntu14.04下的安装步骤

    docker在ubuntu14.04下的安装步骤

    这篇文章主要介绍了docker在ubuntu14.04下的安装步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • docker 安装solr8.6.2 配置中文分词器的方法

    docker 安装solr8.6.2 配置中文分词器的方法

    这篇文章主要介绍了docker 安装solr8.6.2 配置中文分词器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • docker 动态映射运行的container端口实例详解

    docker 动态映射运行的container端口实例详解

    这篇文章主要介绍了 docker 动态映射运行的container端口实例详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • 解决docker pull被复位出现的问题

    解决docker pull被复位出现的问题

    这篇文章主要介绍了解决docker pull被复位出现的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Docker中Nginx反向代理的实现步骤

    Docker中Nginx反向代理的实现步骤

    为了安全考虑,我们一般会设置反向代理,用来屏蔽应用程序真实的IP和端口号,本文主要介绍了Docker中Nginx反向代理的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • docker 指定IP地址、与主机同网段IP

    docker 指定IP地址、与主机同网段IP

    这篇文章主要介绍了docker 指定IP地址、与主机同网段IP,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • docker容器启用ipv6地址的方法流程

    docker容器启用ipv6地址的方法流程

    Docker默认不开启IPv6配置,某些场景我们又需要IPv6网络支持,随着IPv6的普及,以后的使用场景会越来越多,所以本文给大家介绍了docker容器启用ipv6地址方法,用ipv6地址访问容器方法流程、创建一个nginx容器用ipv6地址访问测试流程,需要的朋友可以参考下
    2024-08-08
  • docker常用命令汇总

    docker常用命令汇总

    这篇文章主要介绍了docker常用命令汇总,都是一些常用的基本命令,有需要的同学可以尝试学习下
    2020-12-12

最新评论