解决http协议的问题:

方法一:解决HTTPS问题

安装Nginx,配置HTTPS协议

方法二:修改docker的配置文件

vim /etc/default/docker增加

OPTIONS="--insecure-registry192.168.10.249:5000"


准备配置环境:

主机名 主机IP 服务
docker-images 10.0.0.5 docker 私有库库配置
10.0.0.6 docker 客户端
[root@docker-images~]#cat/etc/redhat-release
CentOSLinuxrelease7.2.1511(Core)
[root@docker-images~]#uname-r
3.10.0-327.el7.x86_64
[root@docker-images~]#uname-m
x86_64
[root@docker-images~]#uname-a
Linuxdocker-images3.10.0-327.el7.x86_64#1SMPThuNov1922:10:57UTC2015x86_64x86_64x86_64GNU/Linux
[root@docker-images~]#

开始配置(镜像库)

1、关闭防火墙和selinux

[root@docker-images~]#systemctlstopfirewalld
[root@docker-images~]#systemctldisablefirewalld#永久
[root@docker-images~]#setenforce0
[root@docker-images~]#getenforce
Permissive
[root@docker-images~]#

2、安装docker

yuminstalldocker
[root@docker-images~]#systemctlenabledocker#加入开机自启动
[root@docker-images~]#systemctlstartdocker#开启服务

3、下载本地私有库registry

[root@docker-images~]#dockerpullregistry#默认下载最新版
[root@docker-images~]#dockerimages#查看下载的镜像
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/registrylatest047218491f8c10daysago33.17MB
[root@docker-images~]#

4、基于私有仓库镜像运行容器

[root@docker-images~]#dockerrun-d-p5000:5000-v/opt/data/registry:/tmp/registrydocker.io/registry
#默认仓库创建在/tmp/registry,用-v参数指定仓库存放位置
1e8b1a03013ee66034b40aee1820000a2ccf026a3b1e43606f3e4007b2a9d455
[root@docker-images~]#
[root@docker-images~]#dockerps#查看运行容器
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
1e8b1a03013edocker.io/registry"/entrypoint.sh/etc/"35secondsagoUp32seconds0.0.0.0:5000->5000/tcpgoofy_mcnulty
[root@docker-images~]#

5、访问私有仓库

[root@docker-images~]#curl127.0.0.1:5000/v2
<ahref="/v2/">MovedPermanently</a>.
[root@docker-images~]#
#说明registry部署成功

6、为基础镜像打标签

[root@docker-images~]#dockersearchdocker.io/fedora/ssh|grepdocker.io/fedora/ssh
docker.iodocker.io/fedora/ssh20[OK]
[root@docker-images~]#dockerpulldocker.io/fedora/ssh#下载镜像
[root@docker-images~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/registrylatest047218491f8c10daysago33.17MB
docker.io/fedora/sshlatestad6a3ff296264weeksago396.7MB
[root@docker-images~]#dockertagdocker.io/fedora/ssh127.0.0.1:5000/ssh#打标签
[root@docker-images~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/registrylatest047218491f8c10daysago33.17MB
127.0.0.1:5000/sshlatestad6a3ff296264weeksago396.7MB
docker.io/fedora/sshlatestad6a3ff296264weeksago396.7MB
[root@docker-images~]#
[root@docker-images~]#vim/etc/sysconfig/docker
OPTIONS="--selinux-enabled--insecure-registry10.0.0.5:5000"#定制私有仓库URL
[root@docker-images~]#systemctlrestartdocker

7、提交镜像到本地私有库

[root@docker-images~]#dockerstart1e8#开启本地库
1e8
[root@docker-images~]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
1e8b1a03013edocker.io/registry"/entrypoint.sh/etc/"4hoursagoUp3seconds0.0.0.0:5000->5000/tcpgoofy_mcnulty
[root@docker-images~]#
[root@docker-images~]#dockerpush127.0.0.1:5000/ssh#上传打好标签的库
Thepushreferstoarepository[127.0.0.1:5000/ssh]
482d621bda33:Pushed
510f15c27a8b:Pushed
e4f86288aaf7:Pushed
latest:digest:sha256:5ad5aec14bb7aa63fdcea1772db6ab5b5de99b0a023d234e61f5aa8c9435e8ffsize:948
[root@docker-images~]#

8、查看已经上传好的镜像

[root@docker-images~]#curl10.0.0.5:5000/v2/_catalog
{"repositories":["ssh"]}
[root@docker-images~]#

浏览器中查看已经上传的镜像

http://10.0.0.5:5000/v2/_catalog

spacer.gif

wKioL1jJFdSDmVDYAAAUQual9v4507.png-wh_50

9、测试库是否可用,在准备好环境的另一台测试机上面下载上传的镜像

[root@centos7~]#vim/etc/sysconfig/docker#加入私有仓库地址
OPTIONS="--selinux-enabled--insecure-registry10.0.0.5:5000"
[root@centos7~]#systemctlrestartdocker
[root@centos7~]#dockerpull10.0.0.5:5000/ssh

spacer.gif

wKiom1jJFdLDUl-3AACNy94e_Ok417.jpg-wh_50

可以看到已经可以下载镜像,证明私有仓库创建成功

[root@centos7~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
10.0.0.5:5000/sshlatestad6a3ff296264weeksago396.7MB
[root@centos7~]#

接下来通过自己的私有库运行一个centos7容器

1、从其他的数据库上save一个centos镜像推送到私有库服务器上

[root@docker-images~]#ls
anaconda-ks.cfgcentos.tar
[root@docker-images~]#dockerload<centos.tar#将镜像导入docker
34e7b85d83e4:Loadinglayer[==================================================>]199.9MB/199.9MB
Loadedimage:docker.io/centos:latest]557.1kB/199.9MB
[root@docker-images~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/registrylatest047218491f8c10daysago33.17MB
127.0.0.1:5000/sshlatestad6a3ff296264weeksago396.7MB
docker.io/fedora/sshlatestad6a3ff296264weeksago396.7MB
docker.io/centoslatest67591570dd2912weeksago191.8MB
[root@docker-images~]#

2、再次打上自己的标签

[root@docker-images~]#dockertagdocker.io/centos:latest10.0.0.5:5000/lcentos
#为了区别前面的,我将centos做了其他标记
[root@docker-images~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/registrylatest047218491f8c10daysago33.17MB
127.0.0.1:5000/sshlatestad6a3ff296264weeksago396.7MB
docker.io/fedora/sshlatestad6a3ff296264weeksago396.7MB
docker.io/centoslatest67591570dd2912weeksago191.8MB
10.0.0.5:5000/lcentoslatest67591570dd2912weeksago191.8MB
[root@docker-images~]#

3、上传标记好的镜像到自己的私有库

[root@docker-images~]#dockerpush10.0.0.5:5000/lcentos

spacer.gif

wKioL1jJFdWyRn3uAAAVS7YL4vw332.png-wh_50

4、查看上传好的镜像

[root@docker-images~]#curlhttp://10.0.0.5:5000/v2/_catalog
{"repositories":["lcentos","ssh"]}
[root@docker-images~]#

浏览器查看

spacer.gif

wKiom1jJFdWzQ9KKAAAVEZDA56Q889.png-wh_50

5、再次到准备好环境的那台测试机上面pull

[root@centos7~]#dockerpull10.0.0.5:5000/lcentos
[root@centos7~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
10.0.0.5:5000/sshlatestad6a3ff296264weeksago396.7MB
10.0.0.5:5000/lcentoslatest67591570dd2912weeksago191.8MB
[root@centos7~]#

6、创建并运行一个容器

[root@centos7~]#dockerrun-d-it--privileged=false-p80:80--nameabccentos10.0.0.5:5000/lcentos/bin/bash
15b9f42b3d63846085664139bff0c041f614bc2b717787686d23785d98b37160
[root@centos7~]#dockerps-a
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
15b9f42b3d6310.0.0.5:5000/lcentos"/bin/bash"16secondsagoUp13seconds0.0.0.0:80->80/tcpabccentos
[root@centos7~]#

7、进入容器查看,可以看到centos的版本等信息

[root@centos7~]#dockerattach15b9f42b3d63
[root@15b9f42b3d63/]#cat/etc/redhat-release
CentOSLinuxrelease7.3.1611(Core)
[root@15b9f42b3d63/]#uname-r
3.10.0-327.el7.x86_64
[root@15b9f42b3d63/]#uname-a
Linux15b9f42b3d633.10.0-327.el7.x86_64#1SMPThuNov1922:10:57UTC2015x86_64x86_64x86_64GNU/Linux
[root@15b9f42b3d63/]#

8、还可以在此操作系统中安装部署Nginx。

[root@15b9f42b3d63yum.repos.d]#yum-yinstallwget#安装wget,方便安装epel源
[root@15b9f42b3d63yum.repos.d]#mvCentOS-Base.repoCentOS-Base.repo.bak
[root@15b9f42b3d63yum.repos.d]#wget-O/etc/yum.repos.d/CentOS-Base.repo
[root@15b9f42b3d63yum.repos.d]#wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo
[root@15b9f42b3d63yum.repos.d]#yumcleanall
[root@15b9f42b3d63yum.repos.d]#yummakecache
[root@15b9f42b3d63yum.repos.d]#yum-yinstallNginx
[root@15b9f42b3d63yum.repos.d]#rpm-qa|grepNginx
Nginx-filesystem-1.10.2-1.el7.noarch
Nginx-mod-http-xslt-filter-1.10.2-1.el7.x86_64
Nginx-mod-mail-1.10.2-1.el7.x86_64
Nginx-mod-stream-1.10.2-1.el7.x86_64
Nginx-mod-http-perl-1.10.2-1.el7.x86_64
Nginx-mod-http-geoip-1.10.2-1.el7.x86_64
Nginx-mod-http-image-filter-1.10.2-1.el7.x86_64
Nginx-1.10.2-1.el7.x86_64
Nginx-all-modules-1.10.2-1.el7.noarch
[root@15b9f42b3d63yum.repos.d]#

9、查看服务

[root@15b9f42b3d63yum.repos.d]#Nginx#开启服务
[root@15b9f42b3d63yum.repos.d]#ps-ef|grepNginx
root1431020:48?00:00:00Nginx:masterprocessNginx
Nginx144143020:48?00:00:00Nginx:workerprocess
Nginx145143020:48?00:00:00Nginx:workerprocess
Nginx146143020:48?00:00:00Nginx:workerprocess
Nginx147143020:48?00:00:00Nginx:workerprocess
root1531020:49?00:00:00grep--color=autoNginx

10、查看端口

[root@15b9f42b3d63/]#netstat-lntup|grepNginx
tcp000.0.0.0:800.0.0.0:*LISTEN20/Nginx:masterpr
tcp600:::80:::*LISTEN20/Nginx:masterpr
[root@15b9f42b3d63/]#

11、浏览器访问

wKioL1jLXaPhyhblAACRzsWPDKk159.png-wh_50


以上就是整个创建私有镜像库的过程,欢迎一起交流学习。

centos7.2定制属于自己的docker私有库的更多相关文章

  1. 在两个屏幕上运行的iOS应用程序(无镜像)

    我创建了一个包含幻灯片的iPad应用程序,当用户点击此幻灯片时,他/她可以输入一些信息.我现在要做的是在通过AirPlay连接电视和iPad时在电视上显示幻灯片显示内容可以这样做吗?如何在iOS中完成?所以不要反映整个应用程序.解决方法您可以使用Airplay和AppleTV编写应用程序以处理2个UIScreens,然后为电视UIScreen和iPadUIScreen设置单独的根视图控制器.然后在电视的视图控制器上显示图像或幻灯片,并从iPad视图控制器的事件中运行该图像或幻灯片!

  2. ios – 如何镜像UIBezierPath?

    我有一个UIBezierPath,我想得到它的镜像.我该如何做到这一点?

  3. ios – Airplay:外部窗口镜像子视图

    米解决方法称为AirPlay镜像的技术命名不佳.它实际上以两种模式运行,一种是将整个iOS设备镜像到AirPlay设备,另一种模式下,一旦连接了镜像AirPlay设备,开发人员就可以使用两个UIWindow/UIScreen.您正在使用后一种模式,通常被称为“镜像”,但是您真的有一个完全独立的窗口/屏幕进行管理,应该有更好的术语来指代这种操作模式.上面所描述的内容基本上是将UIView从设备窗口移动到AirPlay窗口,它的工作原理与之一致!

  4. iOS AirPlay:我的应用程序仅在镜像开启时通知外部显示器?

    >为什么我的应用程序会收到通知我开镜像时的外部显示……我显然误解了一些东西,但是看起来像镜像应该通知我的应用程序外部显示器已经消失代码示例如下.在此先感谢您的帮助!

  5. 让你真正明白cinder与swift、glance的区别

    Cinder——提供块存储,类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。Cinder包含以下三个主要组成部分APIservice:Cinder-api是主要服务接口,负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。Cinder目前提供VolumeAPIV2Schedulerservice:处理任务队列的任务,并根据预定策略选择合适的VolumeService节点来执行任务。目前版本的cinder仅仅提供了一个SimpleScheduler,该调度器选择卷数量

  6. Swift 后端开发

    作为一门新兴的现代化语言,Swift可以说是苹果在开发语言上的一次集大成之作,吸收了很多语言的优点。而且苹果还期望Swift能在服务端开发上能发挥作用。Perfect框架Perfect框架是Swift开发的Web应用服务器,它支持包括Redis、sqlite、Postgresql、MysqL、MongoDB、FileMaker这样的数据库,并且能以fastcgi或者Web服务器的形式提供服务。具体内容得到Swift源代码中可以找到。

  7. Swift构建总是在Docker中构建整个包

    使用像这样的Dockerfile时:当第3步运行时,swiftbuild将只编译应用程序一次,因为第二次执行将只使用已构建的对象,输出将是单个CompileSwiftModule’foo'然而,在运行第4步时,它似乎忽略了已经构建的任何东西,并重新重建整个事物,尽管没有任何改变且没有干净.我试过运行RUNls/foo/.build&&ls/tmp,一切似乎都到位了.我想要在现实中实现的是设置我的图像所以我首先从git克隆项目,构建它,然后copY在本地机器的任何变化中构建新的更新,但最终建立整个项目2次.

  8. 在Android上使用Docker

    是否可以在Android上构建Docker应用程序?我注意到现在没有,但内核毕竟是基于Linux内核的.如果有办法在没有生根的情况下做到这一点,那就更好了!是否有可能为Android创建Docker应用程序?如果是这样,有没有人知道任何进展?

  9. Docker 如何布置PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊。推荐PHP开发者阅读。

  10. 一篇文章教会你部署vue项目到docker

    在前端开发中,部署项目是我们经常发生的事情,下面这篇文章主要给大家介绍了关于部署vue项目到docker的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部