docker 离线安装_docker仓库Harbor的搭建教程

docker专题(四)

故事凌 故事凌 2月27日

6. 管理容器的资源

6.1 基础知识: linux control groups

Linux Cgroup 可让您为系统中所运行任务(进程)的用户定义组 群分配资源— 比如 CPU 时间、系统内存、网络带宽或者这些资源 的组合。您可以监控您配置的cgroup,拒绝cgroup 访问某些资源, 甚至在运行的系统中动态配置您的 cgroup。所以,可以将 controll groups 理解为 controller (system resource) (for) (process) groups,也就是是说它以一组进程为目标进行系统资源分配和控 制。

6.1.1 Linux control groups主要提供了如下功能

  • Resource limitation: 限制资源使用,比如内存使用上限以及文件系统的缓存限制。
  • Prioritization: 优先级控制,比如:CPU利用和磁盘IO吞吐。
  • Accounting: 一些审计或一些统计,主要目的是为了计费。
  • Control: 挂起进程,恢复执行进程。

6.1.2 查看linux内核中是否启用了cgroup

b4a7a7d4f7c6265d1bc0e6397c27f2e9.png

6.2 docker对cpu的使用

6.2.1 dockefile构建一个镜像

保存下面的文件命名为: Dockerfile

FROM centos:latesRUN yum install -y epel-release && yum install -y stressENTRYPOINT["stress"]

Docker能够指定(通过运行命令的-c或者--cpu-shares开关)给一个容器的可 用的CPU分配值。这是一个相对权重,与实际的处理速度无关。每个新的容 器默认的将有1024CPU配额,当我们单独讲它的时候,这个值并不意味着什 么。但是如果我们启动两个容器并且两个都将使用 100%CPU,CPU时间将在 这两个容器之间平均分割,因为它们两个都有同样的CPU配额(为了简单起 见,假设没有任何其他进程在运行)

使用下面的方式启动两个容器,运行之前创建好的mycentos

docker run -itd -c 1024 --cpus 4 centos:7docker run -itd -c 512 --cpus 4 centos:7 

注意:第一个容器占用CPU的权重是1024;第二个容器是512

systemctl set-property docker- a92daccba6983f210bf28c4f4f6e2c4c579d58f91a16d4702ee8e4ae7f8a0f5f.sc ope CPUShares=1024

6.3 docker对内存的使用

  • 第一件事需要注意的是,默认一个容器可以使用主机上的所有内存。
  • 如果你想为容器中的所有进程限制内存,使用docker run命令的 -m开 关即可。你可以使用bytes值定义它的值或是添加后缀(k,m或g)。• 例如:docker run -it -m 128m centos
  • 为了显示限制的实际情况,我将再次使用我的mycentos镜像.
  • docker run -it --rm -m 128m mycentos --vm 1 --vm-bytes 128M --vm-hang 0-m128m:用于限制容器使用的内存大小 • --vm1:产生一个内存分配的进程 • --vm-bytes 128M:每次分配大小为128M--vm-hang 0:分配后立即释放;如果为100,表示分配后不释放,测试100

6.4 docker对I/O的使用

使用命令docker help run | grep -E 'bps|IO'得到Docker对I/O管理的 相关参数,如下:

455f5f4c229aae6b8349bccfc5a99a67.png

7. 搭建Harbor私有仓库

7.1 什么是Harbor

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然 Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面 考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是 由VMware公司开源的企业级的Docker Registry管理项目,它包括 权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像 复制和中文支持等功能。

7.2 安装docker和docker compose

# 安装dockeryum install docker#安装docker composecurl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose# 查看docker compose的版本docker-compose --version

7.3 安装Harbor

Harbor支持在线和离线安装方式,这里,我们使用离线方式,先下载Harbor安装包:

wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.3.tgz

7.3.1 解压离线安装包

tar xzvf harbor-offline-installer-v1.5.3.tgzmv harbor /usr/local/harborcd /usr/local/harbor

7.3.2 配置Harbor

核心配置文件:$HARBOR_HOME/harbor.cfg

# 监听地址hostname = harbor主机的IP地址或者主机名 # 登录密码harbor_admin_password = 123456# 只允许管理员可以创建项目 project_creation_restriction = everyone

7.3.3 安装Harbor

./prepare #配置Harbor./install.sh #安装Harbor

7.3.4 访问Harbor

输入浏览器:主机ip, 如下:

默认的账户为 admin,密码为 Harbor12345。

04a2d3f3fbe6654f02d43fbfcb4c21a1.png

7.4 在Docker客户机上通过终端访问harbor

  • vi /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --insecure-registry my.harbor.com , 其中:my.harbor.com是harbor运行主机的hostname
  • 创建/etc/docker/daemon.json文件,在文件中指定仓库地址
cat > /etc/docker/daemon.json << EOF{ "insecure-registries":["my.harbor.com"] }EOF

重启Docker

systemctl daemon-reloadsystemctl restart docker

重启Docker

systemctl daemon-reloadsystemctl restart docker

重启Docker

systemctl daemon-reloadsystemctl restart docker

重启Docker

systemctl daemon-reloadsystemctl restart docker

7.5 验证环境

使用docker login登录:

docker login my.harbor.com
  • 创建Dockerfile
FROM centosENV TZ "Asia/Shanghai"
  • 编译Dockerfile
docker build -t **my.harbor.com**/library/mycentos .
  • 使用docker images查看生产的镜像
  • 将镜像上传到私有的harbor镜像仓库
docker push **my.harbor.com**/library/mycentos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值