docker-compose容器编排使用详解+示例

这篇具有很好参考价值的文章主要介绍了docker-compose容器编排使用详解+示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、docker-compose概述

Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器

1、产生的背景

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题:如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像、构建容器、这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具。

例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。。。。。。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

2、核心概念

1、docker-compose.yml
docker-compose.yml文件就是Compose的核心配置,基于这个配置文件来生成我们需要的服务和工程。

2、服务(service)
一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器。

3、工程(project)
由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

3、使用的三个步骤

1、编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
dockerfile的使用,使用dockerfile部署springboot项目

2、使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务

3、最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线

4、常用命令

# Compose常用命令
docker-compose -h                           # 查看帮助
docker-compose up                           # 启动所有docker-compose服务
docker-compose up -d                        # 启动所有docker-compose服务并后台运行
docker-compose down                         # 停止并删除容器、网络、卷、镜像。
docker-compose exec  yml里面的服务id                 # 进入容器实例内部  docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器
docker-compose top                     # 展示当前docker-compose编排过的容器进程
docker-compose logs  yml里面的服务id     # 查看容器输出日志
docker-compose config     # 检查配置
docker-compose config -q  # 检查配置,有问题才有输出
docker-compose restart   # 重启服务
docker-compose start     # 启动服务
docker-compose stop      # 停止服务

二、下载安装

1、官方文档

官网:https://docs.docker.com/compose/compose-file/compose-file-v3/

推荐使用3版本,记住一定要与docker引擎版本匹配,使用docker -v查看引擎版本。
docker-compose容器编排使用详解+示例

2、下载

官网下载:https://docs.docker.com/compose/install/

# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 开启可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看版本
sudo docker-compose --version
#docker-compose version 1.29.2, build 5becea4c

3、卸载

# 如果使用curl方式安装的,这样卸载即可
sudo rm /usr/local/bin/docker-compose

三、使用compose

1、前置知识,将一个springboot项目打包为镜像

dockerfile的使用,使用dockerfile部署springboot项目

2、编写docker-compose.yml文件

需要单独一个文件夹!相当于对应的docker run命令的一个个参数,理解起来也非常简单!

# 版本
version: "3"
# 写死,所有的服务
services:
  # 服务名,这是我们的springboot项目,需要使用redis+mysql
  microService:
    # 镜像名
    image: cxf_docker:1.0
    # 如果不加的话,会目录前缀+服务名+1
    container_name: ms01
    ports:
      - "6001:6001"
    # 容器数据卷映射
    volumes:
      - /app/microService:/data
    # 网络,会默认加上目录前缀
    networks: 
      - my_network
    # 依赖于mysql与redis
    depends_on: 
      - redis
      - mysql
  # 服务名,可以用该名字访问网络
  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks: 
      - my_network
    command: redis-server /etc/redis/redis.conf
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db2021'
      MYSQL_USER: 'zzyy'
      MYSQL_PASSWORD: 'zzyy123'
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - my_network
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
# 网络,会默认加上目录前缀
networks: 
   my_network: 

3、启动docker-compose

在docker-compose.yml所在目录执行。

# 检查配置,有问题才有输出
docker-compose config -q
# 执行 
docker-compose up
# 或者后台执行 
docker-compose up -d

如果本地没有该镜像的话,会自动pull然后run!非常的方便!文章来源地址https://www.toymoban.com/news/detail-420880.html

4、停止

# 停止服务
docker-compose stop

到了这里,关于docker-compose容器编排使用详解+示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Dockerfile与docker-compose容器编排(Docker系列第3章,共3章)

    不同的组件需要不同的docker配置(例如容器卷,端口,环境变量等),使用你懂得工具看hub.docker.com官方手册。 不要死记硬背,因为这种东西不是天天要写,过段时间就忘了,很容易引起挫败感。 Dockerfile或者Docker-compose的编写,可以安装一些编辑器插件辅助编写。 非官方中

    2024年04月15日
    浏览(34)
  • 微服务项目容器编排docker-compose.yml、Dockerfile文件模板、相关配置文件、shell脚本

    docker环境变量文件 如果定义的环境变量名与宿主机的一样,则优先宿主机上的。 部署脚本deploy.sh 批量复制文件到对应目录copy.sh

    2024年02月11日
    浏览(30)
  • 在Centos Stream 9上Docker的实操教程(六) - Docker Compose容器编排详解

    在了解 Docker-Compose 之前我们回忆一下之前章节所学,假设我们需要部署一个springboot项目,需要 nginx 、 mysql 、 redis ,通常我们启动这些服务run的时候需要设置每个容器的启动参数,指定数据卷,容器命名,指定不同容器的链接参数等等一系列的操作,是不是很繁琐?那么d

    2024年02月11日
    浏览(33)
  • Docker-Compose编排与部署

    目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境          Docker Compose 的前身是 Fig,它是一个 定义及运行多个 Docker 容器的工具 。可以使用 YAML 文件来配置应用程序的服

    2024年02月14日
    浏览(35)
  • Docker-Compose编排与部署(lnmp实例)

    第四阶段 时  间:2023年8月3日 参加人:全班人员 内  容: Docker-Compose编排与部署 目录 一、Docker Compose (一)概述 (二)Compose适用于所有环境: (三)docker-compose官方文档: (四)Compose的优点: (五)编排和部署 二、Compose原理 三、Compose应用案例 (一)安装docker-ce(

    2024年02月14日
    浏览(31)
  • 基于docker,k8s 搭建服务(单体docker-compose编排)

    1、 yum -y install gcc yum -y instacc gcc-c++ 2、安装yum 工具 yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken 3、设置docker镜像仓库 阿里云 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更改镜像仓库为阿里云 sed -i ‘s/download.docker.com/mirrors.aliyun.com/do

    2024年01月22日
    浏览(42)
  • Linux【CentOS】安装Docker配置docker-compose 编排工具【超详细】

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 1,环境不一致问题:例如代码一样,却由于

    2024年02月05日
    浏览(45)
  • 基于docker-compose编排部署pig微服务快速开发框架

    基于docker-compose编排部署Pig微服务快速开发框架 1.规划节点 IP 主机名 节点 192.168.100.10 master docker-compose节点 2.基础准备 将软件包上传至master节点/root目录下 案例实施 1.基础环境准备 (1)上传软件包 导入Centos:7.9.2009镜像 查看集群状态 2.容器化部署MariaDB (1)编写Dockerfile 编写mysql

    2024年02月16日
    浏览(29)
  • Docker Compose 容器编排

    Docker compose 实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker compose来根据这个模板文件的配置来启动容器) 通俗来说就是把之前的多条docker run启动容器命令 转换为docker-compose.yml配置文件。 Docker compose 三大概念 项目/工程

    2024年02月15日
    浏览(30)
  • Docker高级:Compose 容器编排

    Compose 是Docker公司推出的一个软件,可以管理多个Docker容器组成一个应用。我们只需要定义一个 YAML 格式的配置文件 docker-compose.yaml 配置好多个容器之间的调用关系 ,最后只需要一个命令,就可以同时控制这些容器进行启动 / 关闭。Compose 允许用户通过一个单独的 docker-compo

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包