Docker Compose与私有仓库

Docker Compose工具

Docker Compose概述
  • Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具。使用Docker Compose时,只需要在一个配置文件中定义多个Docker容器,然后使用一条命令启动这些容器。Docker Compse会通过解析容器间的依赖关系按先后顺序启动所定义的容器

  • Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件来配置服务、网络和卷,用户可以一次性启动或停止整个应用的所有服务,简化了开发和部署流程

  • Docker Compose是一个容器编排工具,Docker容器编排是一种管理多个容器及其复杂部署、网络配置、存储卷以及服务发现的自动化技术。它确保容器能够在集群环境中高效、可靠地运行。其他编排技术还有:kubernetes与Swarm

Docker Compose的使用方式
  • 编写测试yaml
shell 复制代码
#编写文件 该文件创建一个以httpd为服务的容器
[root@localhost ~]# vim docker-compose.yaml
services:
  webapp:
    image: 'httpd:latest'
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/www/html:/usr/local/apache2/htdocs:rw"
  • Docker Compose常用命令
shell 复制代码
#前台运行
[root@localhost ~]# docker-compose up 
#后台运行
[root@localhost ~]# docker-compose up -d 
#列出运行容器
[root@localhost ~]# docker-compose ps 
#查看服务日志输出
[root@localhost ~]# docker-compose logs webapp
#打印绑定的公共端口
[root@localhost ~]# docker-compose port webapp 80
#停止已运行的服务的容器
[root@localhost ~]# docker-compose stop webapp
#启动指定服务已存在的容器
[root@localhost ~]# docker-compose start webapp
#删除指定服务的容器 需先关闭
[root@localhost ~]# docker-compose stop webapp
[root@localhost ~]# docker-compose rm webapp
#删除指定服务的容器 无需关闭
[root@localhost ~]# docker-compose kill webapp
#重新构建服务并启动
[root@localhost ~]# docker-compose up -d
[root@localhost ~]# docker-compose port webapp 80
#同时运行多个容器
[root@localhost ~]# docker-compose up --scale webapp=3 -d
#注:端口不可冲突,需将文件中的端口注释掉 
Docker Compose yml配置文件及常用指令简介
  • 不支持制表符tab键2缩减,需要使用空格缩进
  • 通常开头所缩进两个空格
  • 字符后缩进一个空格,如冒号、逗号、横杠
  • 用#号注释
  • 如果包含特殊字符,要使用单引号(")引起来
  • 布尔值(true、false、yes、no、off)必须使用引号括起来,这样分析器会将它们解释为字符串

Harbor私有仓库

Harbor概述
  • Harbor是VMware公司开源的企业级Docker Registry项目

  • Harbor的优势

    • 基于角色控制
    • 基于镜像的复制策略
    • 支持LDAP/AP
    • 图形删除和垃圾收集
    • 图形UI
    • 审计
    • RESTful API
  • 常用组件

    • Proxy

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

      • 负责存储Docker镜像,并处理docker push/pull命令
    • Core services

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

      • 为core services提供数据库服务
    • Log collector

      • 负责收集其他组件的log,供日后进行分析
部署Harbor私有仓库
shell 复制代码
#解压tar包
[root@localhost ~]# tar zxvf harbor-offline-installer-v2.4.3.tgz
#配置harbor
[root@localhost ~]# cd harbor
[root@localhost ~]# cp harbor.yml.tmpl harbor.yml
[root@localhost ~]# vim harbor.yml
hostname: 192.168.10.106 #修改为当前节点ip
#将https相关配置注释掉
#运行安装脚本
[root@localhost ~]# ./install.sh
#使用浏览器访问Harbor
相关推荐
川石课堂软件测试2 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
昌sit!6 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林7 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
一坨阿亮7 小时前
Linux 使用中的问题
linux·运维
A ?Charis9 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision9 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge9 小时前
Docker篇(Docker Compose)
运维·docker·容器