首页 > 其他分享 >十、Docker入门系列--Docker-Compose简介和安装

十、Docker入门系列--Docker-Compose简介和安装

时间:2022-12-07 09:46:59浏览次数:55  
标签:容器 Compose 入门 -- compose Docker docker

十、Docker入门系列--Docker-Compose简介和安装

一、Docker入门系列--Docker 简介
二、Docker入门系列--Docker安装
三、Docker入门系列--Docker常用命令
四、Docker入门系列--Docker镜像
五、Docker入门系列--Docker容器数据卷
六、Docker入门系列--DockerFlie解析
七、Docker入门系列--使用DockerFlie自定义Tomcat镜像
八、Docker入门系列--Docker常用安装
九、Docker入门系列--本地镜像发布到阿里云
十、Docker入门系列--Docker-Compose简介和安装
十一、Docker入门系列--Docker-Compose模板命令
十二、Docker入门系列--Docker-Compose常用命令
十三、Docker入门系列--Portainer可视化Docker
十四、Docker入门系列--Docker搭建部署SpringCloud微服务项目Demo


使用现有的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挂载的数据卷都有显示

标签:容器,Compose,入门,--,compose,Docker,docker
From: https://www.cnblogs.com/xiangningdeguang/p/16962155.html

相关文章

  • 南开河北物理机托管,线路稳定,延迟低
    算特别适合人工智能和大数据时代处理海量数据的需求,近年来发展极为迅速,已成为数据中心、智能手机、5G、智能驾驶等应用领域的主流芯片架构。在传统芯片架构向异构计算演进......
  • 十一、Docker入门系列--Docker-Compose模板命令
    十一、Docker入门系列--Docker-Compose模板命令一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--Docker常用命令四、Docker入门系......
  • SQL 语句中 WHERE 1=1 的作用
    你是否曾在SELECT查询中看到过WHERE1=1条件。我在许多不同的查询和许多SQL引擎中都有看过。这条件显然意味着WHERETRUE,所以它只是返回与没有WHERE子句时相同的......
  • 十二、Docker入门系列--Docker-Compose常用命令
    十二、Docker入门系列--Docker-Compose常用命令一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--Docker常用命令四、Docker入门系......
  • 南开河北BGP物理机租用供应
    这就给开源服务器带来了机会。开源服务器是指内置开源系统的服务器。由于服务器的硬件架构标准相对统一,可以运行免费的开源系统。对于建设大型数据中心,规模化部署海量服务......
  • 有状态软件如何在 k8s 上快速扩容甚至自动扩容
    概述在传统的虚机/物理机环境里,如果我们想要对一个有状态应用扩容,我们需要做哪些步骤?申请虚机/物理机安装依赖下载安装包按规范配置主机名,hosts配置网络:包......
  • 使用sheet.js导出数据
    下面是核心代码letexportColDataletexportColHead//excel工作簿全局变量letworkBook=null;//excelsheet全局......
  • 题目:剑指Offer58-II.左旋转字符串
    题目:剑指Offer58-II.左旋转字符串力扣题目链接(opensnewwindow)字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操......
  • 十三、Docker入门系列--Portainer可视化Docker
    十三、Docker入门系列--Portainer可视化Docker一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--Docker常用命令四、Docker入门系......
  • 实验6 模板类和文件IO
    实验任务3task3_1.cpp#include<iostream>#include<fstream>#include<array>#defineN5intmain(){usingnamespacestd;array<int,N>x{97,98,......