当前位置: 首页 > news >正文

docker-compose快速编排docker容器

一、概述

        docker Compose项目是由Docker官方推出的开源项目,托管于github上,并由python编写。它调用docker服务提供的API,实现对docker容器集群的快速编排。它允许用户通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project),docker-compose默认的管理对象是项目,通过子命令的方式对项目中的一组容器进行生命周期的管理。

二、主要功能

  • 容器编排:Docker Compose允许开发者通过yml文件来配置应用程序需要的所有服务,然后使用一个命令即可从yml文件配置中创建并启动所有服务。

  • 服务管理:通过Docker Compose,开发者可以轻松地启动、停止、重启和删除服务,以及构建或重建服务的Docker镜像。

  • 依赖关系:在yml文件中,开发者可以定义服务之间的依赖关系,确保在启动服务时按照正确的顺序进行。

  • 日志查看:Docker Compose提供了查看服务日志输出的功能,方便开发者进行故障排查和性能监控。

三:优势

  • 简化容器管理:docker-compose通过配置文件来管理多个容器,使得容器的启动、停止、重启等操作变得更加简单和高效。
  • 提高开发效率:开发者可以在本地使用docker-compose来模拟生产环境,从而快速发现和解决问题,提高开发效率。
  • 易于扩展和部署:docker-compose支持将项目部署到不同的环境中,只需更改配置文件中的参数即可实现快速扩展和部署。

四、安装与使用

1.下载Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#这里的 -o

-o (output) 指定输出位置

或者github上下载二进制文件

1.下载

https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64

2.这里放在linux根目录,然后移动/usr/local/bin目录,并改名docker-compose

mv docker-compose-linux-x86_64  /usr/local/bin/docker-compose

请注意,这里版本号2.5.0可能会随着时间的推移而变化。您可以通过访问Docker Compose的GitHub发布页面来获取最新版本号。

2.文件设置执行权限

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

3.验证是否安装成功 

docker-compose --version

安装完成后,需要创建配置docker-compose.yml文件(文件名称可自定义)。该文件定义了构成应用程序的服务、网络、卷等信息。在YAML文件中,开发者可以使用各种字段来配置服务的详细参数,如镜像、容器名称、重启策略、环境变量、端口映射、卷挂载等。

四、常用命令

1.创建容器

创建并启动容器

docker-compose  【options】  up 

-f   可以指定yml文件

-d  表示容器将在后台运行
默认情况下该命令会读取名为 docker-compose.yml 或 docker-compose.yaml 的文件。

a.创建yml文件

version: '3.1'
services:#起个名称docker-demodocker-demo:#指定镜像image: docker-demo:v0.0.3#容器名称container_name: docker-demorestart: always#环境变量,容器启动时可以读取,例如配置文件,敏感信息environment:- SPRING_PROFILES_ACTIVE=dev- SERVER_PORT=8001#端口映射,宿主机:容器ports:- 8010:8001#起个名称docker-demo1docker-demo1:#指定镜像image: docker-demo:v0.0.3#容器名称container_name: docker-demo1restart: always#环境变量,容器启动时可以读取,例如配置文件,敏感信息environment:- SPRING_PROFILES_ACTIVE=dev- SERVER_PORT=8001#端口映射,宿主机:容器ports:- 8011:8001

b.后台运行

例如:指定yml文件,容器后台运行(-d)

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  up -d

c.不后台运行

2.停止并删除容器、网络和卷 

docker-compose  down 

如果不使用 --volumes 选项,与容器相关联的卷将不会被删除。但是,如果容器中有重要数据并且这些数据存储在卷中,那么在删除容器之前,你应该确保已经备份了这些数据。如果使用 --volumes 选项,那么与项目相关联的所有卷都将被删除,这可能会导致数据丢失

a. 停止并删除容器、网络

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  down

b.停止并删除容器、网络和卷 

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  down  -v

3.构建或重建容器

用于构建(或重新构建)项目中的服务容器。当应用程序修改了 Dockerfile 或者依赖关系发生变化时,通常需要使用这个命令来重新构建镜像。

docker-compose build

a. 重新构建所有容器

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  build

b.指定重新构建容器

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  build  docker-demo

4.启动容器

.默认启动所有容器(不会创建新的容器)

docker-compose start

  a.默认

 docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  start

b.指定

 docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  start docker-demo

5.停止容器

        默认停止所有正在运行的容器,但不会删除它们

docker-compose 【options】 stop

-f   可以指定yml文件

a.默认

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  stop

b.指定

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  stop docker-demo

6.重启容器

        默认会重启所有的容器

docker-compose restart

a.默认

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  restart

b.指定

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  restart docker-demo

7.查看服务的日志输出

docker-compose  logs  【options】 [容器名称]

#options

-f 或 --follow:实时跟踪容器的日志输出,类似于 tail -f。
-t 或 --timestamps:在日志输出中显示时间戳。
--since:显示自指定时间以来的日志,格式为 2023-04-01T12:00:00 或者相对时间(例如 4m 表示 4 分钟前)。
--tail:显示日志的最后几行,默认为 all

a.实时查看10 行日志

例如:实时查看容器docker-demo,最后10 行日志

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml logs -f --tail 10 docker-demo

 b.查看自10 分钟前的日志

例如:查看容器docker-demo,10 分钟前的日志

8.列出运行中的容器及其状态

        默认列出所有运行中的容器及其状态

docker-compose  ps  【options】

#【options】

options:也可以指定看具体.

默认会看所有运行中的容器.

a.默认

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  ps 

 b.指定

docker-compose  -f /home/project/docker-compose/docker-compose-demo.yml  ps  docker-demo

9.yml中常用参数

version: '3.1'
services:mariadb:#镜像名称image: mariadb:latest#容器名称container_name: mariadbrestart: always#网络networks:- test_net#端口映射ports:- 3306:3306#数据卷挂载volumes:- /home/mariadb/data/mariadb:/var/lib/mysql- /home/mariadb/mariadb.cnf:/etc/mysql/mariadb.cnf- /home/mariadb/log/mariadb/:/var/log#环境参数environment:MYSQL_ROOT_PASSWORD: 123456docker-demo:image: docker-demo:v0.0.3container_name: docker-demorestart: always#环境参数environment:- SPRING_PROFILES_ACTIVE=dev- SERVER_PORT=8001#端口映射ports:- 8010:8001#容器的权限,允许容器在主机上执行某些特权操作privileged: true#环境变量的文件,容器内的应用程序可以使用读取这些环境变量env_file:- docker-compose-test.env#可以加入外部网络,但需先创建
networks:test_net:external: true	

五、应用场景

        Docker Compose非常适合用于组合使用多个容器进行开发的场景。例如,一个Web项目可能需要同时运行Web服务容器、数据库服务容器和负载均衡容器等。通过Docker Compose,开发者可以方便地定义这些服务及其依赖关系,并使用一个命令来启动整个应用程序。

小结:

        Docker Compose是一个功能强大的工具,它简化了多容器Docker应用程序的定义和运行过程。通过YAML文件配置服务及其依赖关系,并使用简单的命令来管理这些服务,Docker Compose为开发者提供了极大的便利。

上一篇:一文拿捏各种docker命令


http://www.mrgr.cn/news/77728.html

相关文章:

  • go-rod vs Selenium:自动化测试工具的比较与选择
  • Delphi ADO组件中的 ADOTable、ADOQurey 无SQL语句实现增、删、改、查
  • LeetCode 每日一题 2024/11/18-2024/11/24
  • 什么是事务?事务有哪些特性?
  • 2024年11月22日Github流行趋势
  • Unity类银河战士恶魔城学习总结(P130 SkillTree UI 技能树)
  • 如何使用 ChatGPT 进行关键字研究
  • 对 TypeScript 中类是怎么理解的?都有哪些应用场景?
  • Vue 如何简单更快的对 TypeScript 中接口的理解?应用场景?
  • 使用Mac下载MySQL修改密码
  • vscode 远程连接ssh 密钥方式
  • Python 神经网络项目常用语法
  • 葡萄酒(wine)数据集——LDA、贝叶斯判别分析
  • 力扣整理版八:回溯算法(待更新)
  • ReactPress vs VuePress vs WordPress
  • Java进阶五 -IO流
  • 【代码随想录day36】【C++复健】1049. 最后一块石头的重量 II ; 494. 目标和 ;474.一和零
  • 大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
  • 大语言模型---ReLU函数的计算过程及其函数介绍
  • 计算机网络实验
  • 【Oracle实战】文章导读
  • 大语言模型中Softmax函数的计算过程及其参数描述
  • JS文件相关✅
  • GPT系列文章
  • buuoj WEB做题笔记
  • STL中vector实现——简单易懂版