docker私有仓库搭建和资源限制

Docker 私有仓库的搭建

docker 私有仓库默认只支持https协议的访问  不支持http协议 如果需要允许通过http协议访问 必须手动修改配置文件

docker官方默认提供的仓库  提供软件包docker-distribution 由python开发的web系统

#   yum install docker-registry
      #   systemctl start docker-distribution

非dockhub的Reistry必须明确指定服务器的地址 端口     非顶层的私有仓库还必须给定用户名

要想把镜像推送的私有仓库 必须先给镜像打上合适的标签 标签错误是无法上传docker 镜像的

给镜像打标签
# docker image ls
  REPOSITORY           TAG                 IMAGE ID
   myweb                v2                  83d7884335ed
# docker tag myweb:v2 192.168.30.137:5000/myweb:v2_2

[[email protected]-docker]# docker push 192.168.30.137:5000/myweb
The push refers to a repository [192.168.30.137:5000/myweb]
Get https://192.168.30.137:5000/v1/_ping: http: server gave HTTP response to HTTPS client

#允许运行http协议
[[email protected]-docker docker]# vi /etc/docker/daemon.json
{
  "insecure-registries":["192.168.30.137:5000"]
}

#修改daemon.json 拉取私有仓库镜像
[root myweb]# docker pull 192.168.30.137:5000/myweb:v2_2

私有仓库的上传和下载

HARBOR 搭建私有仓库

企业级docker私有仓库项目    原生支持镜像的冗余备份  主要由vmware 中国团队成员开发

支持访问控制  活动监控  主从复制

需要借助docker-compose 单机容器编排工具安装HARBOR

1.安装docker-compose

yum install docker-compose

# yum install docker-compose
# https://github.com/vmware/harbor
1.下载harbor源码
2.# tar xf harbor-offline-installer-v1.5.2.tgz  -C /usr/local/
3. vi /usr/local/harbor/harbor.cfg
   hostname = myharbor.com  不能写服务器IP 必须写主机名
   后面无法解析地址 造成上传镜像失败
4.cd /usr/local/harbor
5. ./install.sh  自动执行安装脚本

harbor安装

5.http://192.168.30.139/harbor/sign-in
  项目 》 新建项目(仓库) 》
6.harbor上传下载镜像的时候需要进行用户认证的 harbor中创建的用户

[[email protected]-docker ~]# docker tag myweb:v2 192.168.30.139/dev/myweb:v2_1
[[email protected]-docker ~]# docker push 192.168.30.139/dev/myweb:v2_1
The push refers to a repository [192.168.30.139/dev/myweb]
Get https://192.168.30.139/v1/_ping: dial tcp 192.168.30.139:443: getsockopt: connection refused
[[email protected] ~]# vi /etc/docker/daemon.json
[[email protected]-docker ~]# systemctl restart docker
[[email protected]-docker ~]# docker push 192.168.30.139/dev/myweb:v2_1
The push refers to a repository [192.168.30.139/dev/myweb]
86527283a11a: Preparing
b87bb670f898: Preparing
841051620742: Waiting
717b092b8c86: Waiting
denied: requested access to the resource is denied
[[email protected]-docker ~]# docker login 92.168.30.139
Username: yxh
Password:
Error response from daemon: Get https://92.168.30.139/v1/users/: dial tcp 92.168.30.139:443: i/o timeout

使用docker login不能使用服务器IP地址,必须使用可以被解析的主机名
vi /etc/hosts
  192.168.30.139  myharbor.com

[[email protected]-docker ~]# docker login myharbor.com
  Username: yxh
  Password:
  Login Succeeded

[[email protected]-docker ~]# docker tag myweb:v2 myharbor.com/dev/myweb:v2
[[email protected]-docker ~]# docker push myharbor.com/dev/myweb:v2
The push refers to a repository [myharbor.com/dev/myweb]
86527283a11a: Pushed
6263c50a557c: Pushed
c6ee3d0df60c: Pushed
2eb31a989e11: Pushed
v2: digest: sha256:41cfd4c47d2f24ca703ef32ff7de9ed166be65adf7c725ff2894cd0b0125ee2a size: 1774

一次性推送整个仓库
 1.先给多个镜像打上标签
  docker tag myweb:v3-1  myharbor.com/dev/myweb:v3-1
  docker tag myweb:v3-2  myharbor.com/dev/myweb:v3-2
  docker tag myweb:v3-3  myharbor.com/dev/myweb:v3-3
 2.上传整个仓库(把三个镜像上传到同一仓库(myweb)中)
  docker push myharbor.com/dev/myweb 

3.下载镜像
# docker pull myharbor.com/dev/myweb:v2
Trying to pull repository myharbor.com/dev/myweb ...
v2: Pulling from myharbor.com/dev/myweb
Digest: sha256:41cfd4c47d2f24ca703ef32ff7de9ed166be65adf7c725ff2894cd0b0125ee2a
Status: Downloaded newer image for myharbor.com/dev/myweb:v2

docker-compose命令
  停止harbor  docker-compose stop
  启动harbor  docker-compose start

harbor上传和下载镜像

harbor仓库的使用

docker容器资源限制

容器技术能够实现主要依赖于内核的两个特性 名称空间和控制组

默认情况一个容器是没有使用资源的限制,它能耗掉宿主机上的所有资源

限制容器的cpu和内存这两种资源

OOM

如果系统内核探测到当前宿主机已经没有足够内存可分配给系统运行中重要的系统进程,就会抛出一个系统异常并且会强制杀死一些内存耗用比较大的应用进程

每个进程都有一个OOM_adj参数 代表一旦发生OOM 是否优先被kill的优先级

容器内存限制

容器CPU限制

cpu核心编号是从0开始编号的

--cpus   限制容器最多使用多少核cpu

# docker pull lorel/docker-stress-ng    下载docker容器压测镜像

启动容器后执行 stress help   查看相关使用文档

原文地址:https://www.cnblogs.com/yxh168/p/9424971.html

时间: 2024-11-06 10:00:50

docker私有仓库搭建和资源限制的相关文章

Centos7 Docker私有仓库搭建

Centos7 Docker私有仓库搭建 仓库:集中存放镜像的地方,可分为公共仓库和私有仓库(公共仓库"http://hub.docker.com"或国内的"http://www.daocloud.io") 注册服务器才是存放仓库具体的服务器(Registry),每个服务器上都可以放置多个仓库,而每个仓库上可以放置多个镜像,每个镜像上可以运行多个容器,每个容器上可以跑一个应用或应用组 原文地址:http://blog.51cto.com/13043516/21202

Docker私有仓库搭建

---恢复内容开始--- 在ubuntu16.04上搭建docker 私有仓库,按照下面这篇文章中的步骤,可以很快搭建下来没有问题 https://blog.csdn.net/wangtaoking1/article/details/44180901 但是启动时发现下面问题: [email protected]:/etc/systemd/system/multi-user.target.wants$ sudo docker push 192.168.122.5:5000/busyboxThe p

Docker 私有仓库搭建

我们在使用Docker时 下载镜像一般都是在外网下载并使用.可是当我们没有外网时我们不得不自己搭建私有仓库.先看下流程图: 下面我们开始搭建 私有仓库1.安装docker,并设置为开机自启yum install docker -y systemctl start dockersystemctl enable docker 2.下载registry 镜像并且run起来下载镜像[[email protected] ~]# docker pull registryUsing default tag:

Docker私有仓库搭建与界面化管理

一.关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去. 但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的. Registry在github上有两份代码:老代码库和新代码库.老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发. 从2.0版本开始就到在

手把手教你搭建Docker私有仓库

章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就会比较简单了. 先准备两台虚拟机: Docker客户端:192.168.1.160 Docker私有仓库服务器:192.168.1.161 两台机器上都配好yum源,安装好docker,设置好docker加速器 1.在服务端192.168.1.161上拉取仓库镜像:registry [[email protected] ~]# docker

Docker 之 私有仓库搭建

1  概述 本文将介绍两种方法搭建docker私有仓库:基于docker-distribution  和  基于 harbor 搭建 2  基于docker-distribution 的搭建 docker-distribution用于构建docker仓库私服,安装docker-distribution包,在extras仓库里 yum -y install docker-distribution 查看安装文件 [[email protected] ~]# rpm -ql docker-distri

拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建

使用.创造和分享 笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题.结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因. 有人戏称,『写 Java,首先要学会选包』,在这里不好评论对错.不过这句话里面,至少包含两层意思:首先 Java 有大量的现成的依赖包,不必要自己造轮子:其次,Java 的包存放较为集中,集成方式也方便. 笔者从事 Android 和 Java 开发以来,经历了几个阶段: 闭门造轮子 > 使用别人的轮子 > 开门造轮子 >

8.Docker私有仓库

8.1 私有仓库搭建与配置 (1)拉取私有仓库镜像(此步省略) docker pull registry (2)启动私有仓库容器 docker run -di --name=registry -p 5000:5000 registry (3)打开浏览器 输入地址http://192.168.184.141:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空 (4)修改daemon.json vi /etc/docker/daem

Docker私有仓库Registry实战

参考: https://www.cnblogs.com/soar1688/p/6828329.html 1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的. Registry在github上有两份代码:老代码库和新代码库.老代码是采用python编写的,存在pull和p