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