了解Docker-compose及私有仓库Harbor部署管理

一、了解docker-compose

1.1 什么是docker-compose

  • Docker Compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具

  • 使用Docker compose不在需要使用shell脚本来启动容器

  • 使用Docker Compose 时,只需要在docker-compose.yml配置文件中定义多个 Docker 容器,然后使用一条命令启动这些容器

  • Docker Compose 非常适合组合使用多个容器进行开发的场景

 

1.2 Docker Compose 容器编排

  • Compose 是 Docker 的服务编排工具,主要用来构建基于 Docker 的复杂应用 Compose 通过一个配置文件管理多个 Docker 容器

  • YAML是一种标记语言很直观的数据序列化格式,可读性高

1.2.1 使用 YAML 时注意事项

  1. 不支持制表符 tab 键缩进,需要使用空格缩进

  2. 通常开头缩进两个空格

  3. 字符后缩进一个空格,如冒号、逗号、横杆

  4. 用#号注释

  5. 如果包含特殊字符,要使用单引号('')引起来

  6. 布尔值(true、 false、 yes、 no、 on、 off)必须用引号("")括起来,这样分析器会将它们解释为字符串

1.2.2 docker compose配置文件常用字段描述

字段描述
build指定 Dockerfile 文件名
dockerfile构建镜像上下文路径
context可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址
image指定镜像
command执行命令,覆盖默认命令
container name指定容器名称,由于容器名称是唯一的,如果指定自定义名称, 则无法 scale
deploy指定部署和运行服务相关配置,只能在 Swarm 模式使用
environment添加环境变量
networks加入网络
ports暴露容器端口,与-p 相同,但端口不能低于 60
volumes挂载宿主机路径或命令卷
restart重启策略,默认 no,always,no-failure,unless-stoped
hostname容器主机名

1.2.3 Docker Compose 常用命令

字段描述
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器里面执行命令
scale指定一个服务容器启动数量
top显示容器进程
logs查看容器输出
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启服务

1.2.4 docker-compose环境安装

 # 下载docker-compose
 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
 # 添加执行权限
 chmod +x /usr/local/bin/docker-compose
 # 查看版本
 docker-compose -v
 docker-compose version 1.21.1, build 5a3f1a3

1.2.5 docke-compose创建容器示例

 # 编写docker-compose配置文件
 vim docker-compose.yml 
 #版本
 version: "3"
 #服务
 services:
   redis:
     #主机名
     hostname: redis
     #容器名
     container_name: redis
     #镜像
     image: redis:latest
     #端口
     ports:
       - "6379:6379"
 ​
 # 创建容器并开启
 docker-compose up  ##前台执行
 docker-compose up -d  ##后台执行
 -d 后台执行
 # 查看
 docker-compose ps  ##使用时必须在docker-compose.yml配置文件同一目录
 docker ps

二、了解Harbor

2.1 什么是 Harbor

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。它以 Docker 公司开源的 Registry 为基础,提供了管理 UI、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能。通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全,以提升用户使用 Registry 构建和运行环境传输镜像的效率。

 

2.2 Harbor的优势

  • 基于角色控制

    用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限

  • 基于镜像的复制策略

    镜像可以在多个 Harbor 实例之间进行复制(同步),适用于负载平衡、高可用性、多数据中心、混合和多云场景

  • 支持LDAP/AD

    Harbor 与现有的企业 LDAP/AD 集成,用于用户认证和管理

  • 图像删除和垃圾收集

    镜像可以被删除,也可以回收镜像占用的空间

  • 图形UI

    用户可以轻松浏览、搜索镜像仓库以及对项目进行管理

  • 审计

    对存储库的所有操作都进行记录

  • RESTful API

    用于大多数管理操作的 RESTful API,易于与外部系统集成

2.3 Harbor 的构成

Harbor 在架构上主要有 Proxy、Registry、Core services、Database( Harbor-db )、Log collector(Harbor-log)五个组件。

  • Proxy 通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务

  • Registry 负责储存Docker镜像,并处理docker push/pul命令

  • Core services Harbor的核心功能,包括UI、webhook、token服务

  • Database 为core services提供数据库服务

  • Log collector 负责收集其他组件的log,供日后进行分析

三、部署Harbor私有仓库

3.1 部署docker仓库服务端

3.1.1 安装docker

 # 安装docker
 yum install -y yum-utils device-mapper-persistent-data lvm2 
 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 yum -y install docker-ce docker-ce-cli containerd.io
 # 启动服务
 systemctl start docker
 systemctl enable docker

3.1.2 安装docker-compose

 # 下载docker-compose
 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
 # 添加执行权限
 chmod +x /usr/local/bin/docker-compose
 # 查看版本
 docker-compose -v
 docker-compose version 1.21.1, build 5a3f1a3

3.1.3 安装harbor

 # 安装harbor
 tar zxf harbor-offline-installer-v2.2.1.tgz -C /usr/local/
 # 配置harbor
 ##复制harbor配置文件
 cp harbor.yml.tmpl harbor.yml
 ##修改harbor配置文件
 vim harbor.yml
 #将hostname ip改为 harbor服务端ip地址
 #将https的内容加#注释
 hostname: 172.16.10.10
 ​
 # 预检查,执行/usr/local/harbor下的prepare脚本
 ./prepare 
 ​
 # 安装harbor,执行/usr/local/harbor下的install.sh脚本
 ./install.sh 

3.1.4 浏览器登录harbor私有仓库web页面

  • 默认用户admin,密码Harbor12345

 

  • 创建项目

  • 查看推送命令

3.2 客户机配置私有仓库

3.2.1 安装docker

 # 安装docker
 yum install -y yum-utils device-mapper-persistent-data lvm2 
 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 yum -y install docker-ce docker-ce-cli containerd.io
 # 启动服务
 systemctl start docker
 systemctl enable docker

3.2.2 修改docker配置文件

 # 配置文件需要手动创建
 vim /etc/docker/daemon.json
 ##添加以下内容
 {
   "insecure-registries": ["172.16.10.10"]   ##添加私有仓库服务端ip地址
 }
 ​
 # 重载
 systemctl daemon-reload 
 # 重启docker
 systemctl restart docker

3.2.3 客户机登录私有仓库

 # 登录连接docker私有仓库方式
 ##语法一:dockerlogin http://docker服务端ip地址
 docker login http://172.16.10.10
 ##语法二:dockerlogin -u用户名 -p密码 http://docker服务端ip地址
 docker login -uadmin -pHarbor12345 http://172.16.10.10
 ​

3.2.4 私有仓库上传镜像

 # 向仓库推送上传镜像(必须要登录连接私有仓库)
 ##在项目中标记镜像(设置在项目中的名称):
 ##语法:docker tag  原镜像名:原标签 仓库服务端ip/项目名称/定义镜像名:定义标签
 docker tag centos:7.6.1810 172.16.10.10/kgc/kgc:nginx
 ​
 # 推送镜像到当前项目
 ##语法:docker push 仓库服务端ip/项目名称/定义后的镜像名:定义后的标签
 docker push 172.16.10.10/kgc/kgc:nginx
 ​

3.2.5 从私有仓库下载镜像

 # 语法:docker pull 仓库服务端ip/项目名称/镜像名:标签
 docker pull 172.16.10.10/kgc/kgc:nginx
  • 也可以从仓库web页面复制pull链接进行下载

 

  • 将命令粘贴到命令行即可

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值