七、Docker-Compose简介和安装

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 七、Docker-Compose简介和安装

使用现有的docker进行部署存在问题

我们之前在Docker容器中安装了nginx、mysql、es、redis等等一些容器,然后每次我需要先启动redis、mysql、es、nginx之后才能启动我们的项目,因为容器之间可能存在某种依赖,需要按一定的顺序启动,比如Kibana容器依赖于es容器,es容器需要先启动。当容器启动完毕我们才能运行起来项目。如果容器数量特别多的话启动更加麻烦。

假如需要将这些服务部署到另一个服务器,但是不知道到底用到了Docker里面具体的哪一些容器,没有办法只能把容器全部复制过去,没法对一个项目的容器进行管理。

Docker-Compose简介

Compose项目是Docker官方的开源项目。负责实现对Docker容器集群的快速编排,对多个容器进行编排,将一组相关联的容器放在一起,可以理解为它将你项目用到的所有容器按照你指定的启动顺序设置成一个文件,然后一次就可以启动。

与Dockerfile不同的是,Dockerfile模版文件是让用户定义一个单独运行的容器,而Compose是多个容器相互配合完成某一个任务的情况。比如要实现一个Web项目,里面除了Web容器本身之外还有数据库、负载均衡容器等等。

定义方式

允许用户通过一个单独的docker-compose.yml模版文件来定义一组相关联的应用容器为一个项目。

里面有两个重要概念:

  • 项目:一组相关联的应用容器组成的一个完整的业务单元。可以理解为你项目中的多个容器组成了一个项目
  • 服务:一个应用容器里面可以包含若干运行相同镜像的容器实例。可以理解项目中的每一个容器都称之为服务,多个容器就是多个服务,只是这里面的叫法名称变了而已。

只要操作平台支持Docker就可以用Compose来进行编排管理。

安装卸载

1、登入官方地址下载指定版本,官方地址为:https://github.com/docker/compose/releases

下载完之后上传到服务器的/usr/local/bin目录下

给它一个执行权限

sudo chmod +x /usr/local/bin/docker-compose

2、直接从服务器下载

curl -L https://github.com/docker/compose/releases/download/2.2.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

后续步骤同上

docker-compose -v  #查看是否安装成功

案例

1、创建一个目录

mkdir ems

2、在ems目录创建一个docker-compose.yml 模版文件

3、编写docker-compose.yml

#docker-compose项目版本号
version: "3.8"
services:
  centos01:                #自定义的服务的名称 
     image: tomcat:latest   #代表使用哪一个镜像 latest表示版本号
     ports:       #代表主机和容器中的端口映射  
     - 8082:8080

version:docker-compose和docker版本对应,先查看docker版本

docker版本20.10.+,所以对应docker-compose的3.8版本

4、启动docker-compose一组服务

docker-compose up

表示启动成功

5、还可以在里面继续增加容器redis,指定

#docker-compose项目版本号
version: "3.8"
services:
  centos01:                #自定义的服务的名称
     image: tomcat:latest   #代表使用哪一个镜像
     ports:       #代表主机和容器中的端口映射  
     - 8082:8080
  redis01:
    image: redis:latest  #指定了redis的镜像 
    ports:
    - 6379:6379

两个都启动成功

更多配置

environment:代表给当前容器启动指定环境,类似于docker run -e MYSQL_ROOT_PASSWORD=root

Volumes:代表给当前容器和主机指定数据卷,类似于 docker run -v 注意 这里数据卷的路径必须先创建

#docker-compose项目版本号
version: "3.8"
services:
  centos01:                #自定义的服务的名称
     image: tomcat:latest   #代表使用哪一个镜像
     ports:       #代表主机和容器中的端口映射  
     - 8082:8080
  redis01:
    image: redis:latest
    ports:
    - 6379:6379
  mysql01:
    image: mysql:latest
    ports:
   - 3306:3306
   environment:  
   - "MYSQL_ROOT_PASSWORD=root"
   volumes:
    - /root/mysqldata:/var/lib/mysql

启动之后服务运行状态

这里的Names是自动取的别名,可以在里面增加container_name给容器指定别名

以及mysql挂载的数据卷都有显示


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
Docker 容器
Docker安装及镜像源修改
本文介绍了Docker的安装过程和如何修改Docker镜像源以加速下载。包括更新系统包、安装所需软件包、设置yum源、安装Docker以及验证安装是否成功。接着,提供了修改Docker镜像源的步骤,包括创建配置文件、编辑配置文件以设置镜像加速地址,并提供了几个常用的国内镜像源地址。最后,通过重启Docker服务和检查配置是否生效来完成镜像源的修改。
Docker安装及镜像源修改
|
7天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
157 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
93 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
18天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
1月前
|
存储 Unix 虚拟化
Docker容器简介
Docker是一种轻量级的虚拟化技术,它通过容器化应用,提高了硬件资源利用率,简化了应用的部署、运输和运行,且与虚拟机相比,具有更快的交付速度和更低的资源消耗。
33 2
|
2月前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
2月前
|
存储 搜索推荐 应用服务中间件
深入探索Docker 安装 Tomcat
【8月更文挑战第26天】
44 4
|
2月前
|
NoSQL Redis 数据安全/隐私保护
深入探索利用Docker安装Redis
【8月更文挑战第27天】
91 2
下一篇
无影云桌面