实验环境:两个Centos7虚拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库。

基础配置

查看一下两台虚拟机的IP地址

Server的IP地址是192.168.134.151.

Registry的IP地址是192.168.134.150.

使用setenforce 0临时关闭SElinux。

打开ServerRegistry的内核转发功能

编辑配置文件/etc/sysctl.conf,添加下面的内容:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0



修改完成后使用sysctl –p命令生效。

Docker配置

1.Docker环境安装

ServerRegistry两台机器上使用yum install -y docker命令安装docker环境。



2.配置Docker配置文件

ServerRegistry上编辑/etc/sysconfig/docker文件添加如下两行:

ADD_REGISTRY='--add-registry 192.168.134.150:5000'
INSECURE_REGISTRY='--insecure-registry 192.168.134.150:5000'

这里是将docker image的获取地址改为从本地私有Registry获取。



使用systemctl restart docker命令重启一下docker。

3.设置Docker服务

设置docker开机自启

systemctl enable docker

4.配置镜像仓库

先把等会要用到的两个镜像的tar包放到/root目录下。

接着手动加载镜像,加载registry镜像并使用再将他上传至私有镜像仓库,因为registry容器要用于其他容器的注册,所以先将他启动。搭建私有镜像仓库必须要先将registry容器启动

使用的命令如下:

docker load < registry_latest.tar   //加载镜像
docker images //查看刚刚加载的镜像的ID
docker run -d -p 5000:5000 --restart=always --name registry registry:latest //启动registry容器
docker tag 镜像ID registry:latest //给registry镜像打上新tag(可以省去此步)
docker push registry:latest //将registry镜像上传至私有镜像仓库(可以省去此步)



这时使用docker images查看一下本地镜像。



可以看到下面一个就是我刚刚重新打tag的镜像。

现在上传一个owncloud镜像。



这里可以看到上传完之后的镜像是没有tag的,所以我们给他打上tag,就可以看出来了。



接着将他上传至私有镜像仓库。

全部命令如下:

docker load < owncloud.tar   //加载镜像
docker images //查看刚刚加载的镜像的ID
docker tag 镜像ID owncloud:latest //给owncloud镜像打上tag
docker push owncloud:latest //将owncloud镜像上传至私有镜像仓库

我这里私有镜像仓库的默认位置在/var/lib/docker/volumes/022dbe58afaec96083a1ceb3fb6672c7a62be38a5a48158322d75d2e6b1150c3/_data/docker/registry/v2/repositories/下。

查看一下



这里可以看到我上传至私有镜像仓库的镜像文件。

验证

验证一下私有镜像是否搭建成功

到server上拉取owncloud镜像试一下。



这里可以看到他是从192.168.134.150 Registry镜像仓库拉取的镜像。

到此实验成功!

手动搭建Docker本地私有镜像仓库的更多相关文章

  1. 搭建docker registry私有镜像仓库

    搭建docker registry私有镜像仓库 一.安装docker-distribution yum install -y docker-distribution 安装完成后,启动服务: syste ...

  2. docker实战——Docker本地私有镜像仓库Harbor搭建及配置

    Harbor介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然docker官方提供了公共的镜像仓库(Docker Hub),但是从安全和效率等方面考虑,部署我们私有环境内的Registr ...

  3. Docker 构建私有镜像仓库

    在使用Docker一段时间后,往往会发现手头积累了大量的自定义镜像文件,这些文件通过公有仓库进行管理并不方便,另外有时候只是希望在内部用户之间进行分享,不希望暴露出去.这种情况下,就有必要搭建一个本地 ...

  4. 利用docker实现私有镜像仓库

    利用docker实现私有镜像仓库 在linux服务器上安装了docker过后,可以拉取docker镜像仓库: docker pull registry 再执行命令让镜像run起来: docker ru ...

  5. Docker深入浅出系列 | 5分钟搭建你的私有镜像仓库

    Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方 ...

  6. Docker创建私有镜像仓库

    Docker官方提供了一个工具docker-registry,可以借助这个工具构建私有镜像仓库: 1.拉取registry镜像 # docker pull registry//可以使用 docker ...

  7. docker配置私有镜像仓库-registry和hyper/docker-registry-web

    1.前言️​ Docker hub是远程仓库,是国外的,push pull速度特别慢,尤其是网速不好的时候,页面都点不进去,官网 但是可以配置阿里云镜像加速哦: 因此搭建一个私有的镜像仓库用于管理我们 ...

  8. 利用docker搭建本地私有镜像仓库

    主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...

  9. 8天入门docker系列 —— 第六天 搭建自己的私有镜像仓库Registry

    这一篇我们来聊聊私有仓库的搭建,其实不管你是通过docker build还是compose的方式进行构建,最终还是要将生成好的镜像push到远程的仓库中,这样多个 平台可以方便的获取你registry ...

随机推荐

  1. 详细介绍MySQL/MariaDB的锁

    官方手册:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-transaction-model.html 1.事务提交的方式 在MariaD ...

  2. python装饰器2:类装饰器

    装饰器1:函数装饰器 装饰器2:类装饰器 装饰器3:进阶 本文是装饰器相关内容的第二篇,关于类装饰器. "类装饰器"有两种解读方式:用来装饰类的装饰器:类作为装饰器装饰其它东西.你 ...

  3. Qt 编程中 namespace Ui { class Widget; } 解析

    class Widget 里面有个声明 Ui::Widget *ui,这个 ui 是使用 namespace Ui 里的 Widget 类声明的,该类只是简单的继承了 ui_widget.h 里的 U ...

  4. SSM框架的sql中参数注入(#和$的区别)

    <select id="findUsersByUserName2" resultType="java.util.Map" parameterType=&q ...

  5. phpmyadmin创建mysql的存储过程

    通过phpmyadmin ,创建procedure, 用于生成测试数据. 随机的用户名及手机号. DELIMITER $$ CREATE PROCEDURE `sp_insert_test_users ...

  6. 【微服务No.1】Consul服务发现在windows下简单使用

    基本介绍: 安装: 下载地址:https://www.consul.io/downloads.html 运行: consul agent -dev 显示这个界面说明已经开启成功. 页面显示: 然后访问 ...

  7. C# 给一个控件去掉焦点

    给一个控件去掉焦点(如选中控件按钮button时,按钮出现方框显示):例如给form这个窗体中的button按钮去焦点1.首先在form这个窗体中拖一个label按钮,去文字,设置背景为透明: 2.然 ...

  8. laravel的时间日期处理包Carbon用法

    时间日期处理包--Carbon Carbon – 是继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单.Laravel 中默认使用的时间处理类就是 Carbon. La ...

  9. 课程作业——Python基础之使用turtle库画出红旗

    代码如下: import turtle # 设置画笔和背景颜色 turtle.color('yellow') turtle.bgcolor('red') # 通过偏移量和尺寸大小画星星 def dra ...

  10. 记录微信小程序报错 Unexpected end of JSON input;at pages/flow/checkout page getOrderData function

    微信小程序报错 Unexpected end of JSON input;at pages/flow/checkout page getOrderData function 这个报错是在将数组对象通过 ...