04-docker compose容器编排

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

Docker Compose简介

Docker Compose是什么

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

简单来说,Docker Compose 是Docker官方的开源项目,负责实现Docker容器集群的快速编排

Docker Compose能干嘛

​ Docker建议我们每一个容器实例只运行一个服务,业务docker容器本身占用资源极少,所以最好是将每个服务单独的分隔开来,但是这样我们又面临了一个问题:

如果我们需要同时部署好多服务,难道要每个服务单独写Dockerfile,然后构建镜像、构建容器吗?这样岂不累死,所以Docker官方给我们提供了docker-compose多服务部署的工具

​ Compose允许用户通过一个单独的 docker-compose.yml 模板(YAML格式)来定义一组相关联的应用容器为一个项目(project)

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用所以的依赖,完成构建。docker-compose 解决了容器与容器之间如何管理编排的问题

Docker Compose 下载安装

Docker Compose 官方文档 https://docs.docker.com/compose/compose-file/compose-file-v3/

Docker Compose 下载地址 https://docs.docker.com/compose/install/

安装步骤

[root@nhk ~]# sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 或者
[root@nhk ~]# sudo wget https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose



# 授予执行权限
[root@nhk ~]# chmod +x /usr/local/bin/docker-compose 
[root@nhk ~]# 

验证安装是否成功
[root@nhk ~]# docker-compose --version   # 您应该能够看到 Docker Compose 的版本信息
Docker Compose version v2.19.1

卸载步骤

如果您无法成功下载 Docker Compose 或者想要卸载 Docker Compose,可以使用如下步骤:

如果你是使用 curl 安装的,则使用下面命令卸载

1)删除 Docker Compose 的二进制文件

sudo rm /usr/local/bin/docker-compose

2)验证 Docker Compose 是否已成功卸载

docker-compose --version

如果您看到类似 “command not found” 的错误消息,则表示 Docker Compose 已成功卸载。

Compose 核心概念

  • 一文件

docker-compose.yml

  • 两要素

服务(service):一个个应用容器实例,比如订单微服务、库存微服务、MySQL容器、nginx容器、redis容器等

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

Compose使用三步骤

  • 编写Dockerfile 定义各个微服务应用并构建出对应的镜像文件
  • 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
  • 最后,执行docker-compose.yml up 命令,启动并运行整个应用程序,完成一键部署上线

Compose 常用命令

查看帮助

docker-compose -h 

启动所有docker-compose服务。启动容器。如果不存在,将会构建镜像

docker-compose up

启动所有docker-compose服务并后台运行

docker-compose up -d

停止并删除容器、网络、卷、镜像

docker-compose down

进入容器实例内部 docker-compose exec docker-compose.yml 文件中写的服务id /bin/bash

docker-compose exec yml里面的服务id

展示当前docker-compose编排过的运行的所有容器

docker-compose ps

展示当前docker-compose编排过的容器进程

docker-compose top

查看容器输出日志

docker-compose logs yml里的服务id 

检查设置

docker-compose config

检查设置,有问题才输出(若无输出,则证明docker compose文件基本编写正确)

docker-compose config -q

重启服务

docker-compose restart

启动服务

docker-compose start

停止服务

docker-compose stop

以下是一个简单的 Docker Compose 示例文件 docker-compose.yml,用于启动一个包含 Web 应用和数据库的容器:

version: '3'
services:
  web:
    build: .
    ports:
      - 8080:80
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: myapp

​ 在上面的示例中,定义了两个服务:webdbweb 服务使用当前目录中的 Dockerfile 构建镜像,并将容器的 80 端口映射到主机的 8080 端口。web 服务还依赖于 db 服务,即 web 服务会在 db 服务启动之后才启动。

​ 要使用 Docker Compose 启动这个应用程序,只需在包含 docker-compose.yml 文件的目录中运行 docker-compose up 命令即可。Docker Compose 将会自动创建和启动这两个容器,并将它们连接在一起文章来源地址https://www.toymoban.com/news/detail-697547.html

docker-compose.yml文件实例解读

version: '3'  #  Docker Compose 文件格式的版本 3

services:
	microService:	# 服务名,可随意定义
		image: nhk_docker:1.6	# 镜像名:TAG
    	container_name: ms01	# 容器名称(相当于命令 --name ms01)
    	ports:
     	 	- "6001:6001"
   	 	volumes:	# 容器数据卷
      		- namenode:/hadoop/dfs/name
    	networks:
    		- clear_net
    	depends_on:	# 定义服务之间的依赖关系,当一个服务依赖于其他服务时,Docker Compose 会按照 depends_on 中定义的顺序来启动服务。只有在所依赖的服务都已经启动并且健康时,才会启动当前的服务,需要注意的是,depends_on 并不能保证依赖的服务一定会在当前服务之前启动完成。它只是定义了启动顺序,并不能检查服务的健康状态或等待服务完全启动。
    		- redis
    		- mysql 
   
   reids:
   		image: reids:6.0.8	# 镜像名:TAG
   		container_name: redis01
    	ports:
     	 	- "6379:6379"
   	 	volumes:	# 容器数据卷
      		- /app/redis/redis.conf:/etc/redis/redis.conf
      		- /app/redis/data:/data
    	networks:
    		- clear_net
    	command: redis-server /etc/redis/redis.conf	
   		
   	mysql:
   		image: mysql:5.7	# 镜像名:TAG
    	container_name: ms01	# 容器名称
    	environment:
    		MYSQL_ROOT_PASSWORD: '123456'
    		MYSQL_ALLOW_EMPTY_PASSWORD: 'on'
    		MYSQL_DATABASE: 'db01'
    		MYSQL_USER: 'nhk'
    		MYSQL_PASSWORD: '123456'
    	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:
    		- clear_net
    	command: --defalut-authentication-plugin=mysql_native_password  # 解决外部无法访问	
    	
networks: 
	clear_net:

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

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

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

相关文章

  • docker (十)-docker compose容器编排

    在实际工作中,部署一个应用可能需要部署多个容器,一个一个部署非常不方便。docker compose可以一键部署和启动多个容器,它使用yaml文件来编排服务。github和docker hub很多项目都提供了docker-compose.yaml文件,我们可以一键部署项目,非常方便。 这里可以使用 vscode 去学习dock

    2024年02月21日
    浏览(38)
  • Docker六 | Docker Compose容器编排

    目录 Docker Compose 基本概念 使用步骤  常用命令  Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose可以管理多个Docker容器组成一个应用。 需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系,然后只需一个命令就能同时

    2024年02月02日
    浏览(34)
  • Docker Compose容器的快速编排

    Docker Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用Docker Compose来根据这个模板文件的配置来启动容器)。 项目/工程 - 包含一个或多个服务 - 包含一个或多个容器 默认使用项目的目

    2024年02月15日
    浏览(32)
  • Docker——compose单机容器集群编排

    Docker-compose是一个基于Docker的容器编排工具。它使用一个YAML文件来定义和配置多个容器的集群。通过使用Docker-compose,我们可以轻松地定义、配置和协同运行多个Docker容器,而无需手动管理它们的启动和通信。 1.为何需要Docker-compose 在现代应用程序开发中,容器化技术已经成

    2024年02月16日
    浏览(35)
  • docker笔记9:Docker-compose容器编排

    目录 1.是什么? 2. 能干嘛? 3.去哪下? 4.安装步骤  ​编辑 5.卸载步骤   6.Compose核心概念  6.1概念 6.2 Compose常用命令   7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 swagger测试 7.4上面成功了,有哪些问题? 7.5 使用Compose  7.5.1

    2024年02月09日
    浏览(33)
  • 尚硅谷Docker-笔记12:Compose容器编排

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

    2024年01月18日
    浏览(32)
  • Docker进阶:Docker Compose(容器编排) 管理多容器应用—实战案例演示

    💖The Begin💖点点关注,收藏不迷路💖 在开始之前,我们需要确保已经安装了 Docker 。 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如

    2024年02月08日
    浏览(31)
  • 4.docker容器编排(docker compose 与 docker swarm)

    容器编排:就是针对容器生命周期的管理,对容器的生命周期进行更快速方便的方式进行管理。 实例:一个java程序,依赖了mysql,redis,要想把 java 程序运行起来,则必须要先启动 mysql、redis。那么这三者这件就存在了依赖关联。   容器编排存在的意义: 依赖管理,当一个容

    2024年02月03日
    浏览(39)
  • docker-compose容器编排使用详解+示例

    Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启

    2023年04月22日
    浏览(30)
  • Docker Compose 容器编排 + Docker--harbor私有仓库部署与管理

    目录 一、Docker Compose简介 1、Docker Compose 的YAML 文件格式及编写注意事项 2、Docker compose 使用的三个步骤 3、 Docker Compose配置常用字段 4、 Docker Compose 常用命令 5、 Docker Compose 文件结构 二: Docker Compose 安装 1、Docker Compose 环境安装  2、Docker Compose 文件结构 (1)准备依赖文件

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包