Docker Compose --- 管理多容器应用

用于定义和运行多容器 Docker 应用程序。通过 Compose,用户可以使用 YAML 文件来配置应用程序的服务、网络和卷等资源

简化多容器的管理和部署过程

以下compose.yaml示例展示如何部署两个服务WordPress 和 MySQL的环境

version: '3.8'  # 指定 Docker Compose 文件的版本services:  # 定义服务mysql:  # MySQL 服务配置container_name: mysql_db  # 容器的名称image: mysql:8.0  # 使用的 Docker 镜像及其版本ports:  # 映射端口- "3306:3306"  # 将主机的 3306 端口映射到容器的 3306 端口environment:  # 设置环境变量MYSQL_ROOT_PASSWORD: 123456  # MySQL 根用户的密码MYSQL_DATABASE: wordpress  # 创建的默认数据库名称volumes:  # 数据卷配置- mysql-data:/var/lib/mysql  # 将 MySQL 数据存储在名为 mysql-data 的卷中- ./myconf:/etc/mysql/conf.d  # 将本地配置文件目录挂载到容器中restart: always  # 容器崩溃时自动重启networks:  # 指定网络- blog_network  # 使用名为 blog_network 的网络wordpress:  # WordPress 服务配置image: wordpress  # 使用的 Docker 镜像(WordPress)ports:  # 映射端口- "8080:80"  # 将主机的 8080 端口映射到容器的 80(HTTP)端口environment:  # 设置环境变量WORDPRESS_DB_HOST: mysql_db  # MySQL 数据库主机名(与 MySQL 服务名称相同)WORDPRESS_DB_USER: root  # 用于连接数据库的用户名WORDPRESS_DB_PASSWORD: 123456  # 用于连接数据库的用户密码WORDPRESS_DB_NAME: wordpress  # WordPress 使用的数据库名称volumes:  # 数据卷配置- wordpress_data:/var/www/html  # 将 WordPress 数据存储在名为 wordpress_data 的卷中restart: always  # 容器崩溃时自动重启networks:  # 指定网络- blog_network  # 使用名为 blog_network 的网络depends_on:  # 定义依赖关系- mysql  # 确保 MySQL 服务在 WordPress 启动之前运行volumes:  # 定义数据卷mysql-data:  # MySQL 数据存储卷wordpress_data:  # WordPress 数据存储卷networks:  # 定义网络blog_network:  # 自定义网络,用于连接服务之间的通信

参数描述:

  • version:指定 Docker Compose 文件使用的版本,确保兼容性。
  • services:定义应用中的各个服务。
  • container_name:自定义容器名称,便于管理和识别。
  • image:指定要使用的 Docker 镜像及其版本。
  • ports:映射主机和容器之间的端口,使外部可以访问服务。
  • environment:设置环境变量,供容器内应用使用。
  • volumes:定义数据卷,用于持久化数据存储和配置文件。
  • restart:设置容器重启策略,以提高应用稳定性。
  • networks:定义服务之间的网络,使它们能够相互通信。
  • depends_on:指定服务启动顺序,确保依赖服务先启动。

命令

准备好 docker-compose.yaml 文件后,就可以通过以下命令轻松启动、停止和管理应用:

启动应用

默认情况会去启动compose.yaml

docker  compose  up

如果要指定yaml名称和启动多个可以用 -f

docker compose -d -f compose.yaml -f sqlcom.yaml up

停止应用

默认都是compose.yaml

docker compose  stop

停止并清除所有服务

docker compose down

重启服务

docker compose restart

 

  • -d:在后台运行容器,不阻塞终端。
  • -f <filename>:指定要使用的 Docker Compose 文件,可以多个文件一起使用,以便覆盖或扩展配置。
  • up:启动和创建服务,必要时更新已有容器。
  • stop:停止正在运行的服务,但不删除容器,可以随时重启。
  • down:停止并删除服务及其相关资源,适合清理环境。
  • restart:重启当前运行的服务,快速应用更改。

 

附录和参考资料

  • Docker 官方文档
  • Docker Compose 官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

18.04Ubuntu遇到Unable to locate package

解决办法&#xff1a; 要先升级你的apt Sudo apt-get update

Django ORM详解:外键使用(外键逻辑关联)与查询优化

Django数据库迁移 # 创建迁移 python manage.py makemigrations your_app_name # 应用迁移 python manage.py migrate # 查看迁移状态 python manage.py showmigrations # 回滚迁移 python manage.py migrate your_app_name 0001 # 修改表后,删除迁移记录和表删除迁移记录后重…

redis做缓存,mysql的数据怎么与redis进行同步(双写一致性)

基于业务做选择,强一致性和允许延迟再加消息队列 强一致性:当修改了数据库的数据同时更新缓存的数据,缓存和数据库的数据保持一致 读操作:缓存命中,直接返回数据,缓存没有命中,查询数据库,写入缓存,设定过期时间 写操作:延迟双删 :先删除缓存,修改数据库,等待延迟(数据库主从节…

《安全基石:等保测评的全方位解读》

在数字化转型的浪潮中&#xff0c;网络安全已成为企业生存与发展的核心议题。等保测评&#xff0c;作为我国网络安全等级保护制度的重要组成部分&#xff0c;不仅是企业安全的基石&#xff0c;更是推动企业高质量发展的关键。本文将全面解读等保测评的内涵、作用及其对企业的深…

(五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API

目录 一、PySpark 二、数据介绍 三、PySpark大数据开发实战 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映时间及…

一些CSS的基础知识点

写在前面 Cascading Style Sheets&#xff08;CSS&#xff09;是用于描述网页样式和布局的标记语言。它允许开发者将内容与表示分离&#xff0c;从而使得网页的设计和结构更加清晰和易于维护。本文将详细介绍CSS的基础知识点&#xff0c;帮助初学者快速掌握CSS的核心概念和应用…

SpringFactoriesLoader

1.什么是SPI (面试题) SPI全名Service Provider interface&#xff0c;翻译过来就是“服务提供接口”&#xff0c;再说简单就是提供某一个服务的接口&#xff0c; 提供给服务开发者或者服务生产商来进行实现。 Java SPI 是JDK内置的一种动态加载扩展点的实现。 这个机制在一…

Apifox 10月更新|测试步骤支持添加脚本和数据库操作、测试场景支持回收站、变量支持「秘密」类型

Apifox 新版本上线啦&#xff01; 看看本次版本更新主要涵盖的重点内容&#xff0c;有没有你所关注的功能特性&#xff1a; 自动化测试模块能力持续升级 测试步骤支持添加「脚本」和「数据库操作」 测试场景和定时任务支持回收站内恢复 定时任务支持设置以分钟频率运行 导入…

「C/C++」C++标准库之#include<fstream>文件流

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

liunx网络套接字 | 实现基于tcp协议的echo服务

前言&#xff1a;本节讲述linux网络下的tcp协议套接字相关内容。博主以实现tcp服务为主线&#xff0c;穿插一些小知识点。以先粗略实现&#xff0c;后精雕细琢为思路讲述实现服务的过程。下面开始我们的学习吧。 ps&#xff1a;本节内容建议了解网络端口号的友友们观看哦。 目录…

第十六课 Vue中的组件

Vue中的组件 Vue中可以自定义模板组件&#xff0c;组件的写法有很多种 组件写法 1&#xff09;在components上拓展组件 <div id"app"><test></test></div><script>new Vue({el:#app,components: {test: {template: <h1>这是一…

nmcli、ip、ifcfg配置网络区分方法

文章目录 一、检查NetworkManager状态使用nmcli命令&#xff1a;检查NetworkManager服务状态&#xff1a; 二、检查ip命令的使用三、检查ifcfg文件查看/etc/sysconfig/network-scripts/目录&#xff1a;查看/etc/network/interfaces文件&#xff08;针对Debian系&#xff09;&a…

redis详细教程(5.AOP和RDB持久化)

AOF&#xff08;Append Only File&#xff09;日志和RDB&#xff08;Redis Database Backup&#xff09;持久化是Redis中两种重要的数据持久化机制。 RDB持久化机制原理RDB是Redis提供的一种数据快照保存机制&#xff0c;它将某个时间点的数据库状态保存到一个RDB文件中。这个…

uni-app 运行HarmonyOS项目

1. uni-app 运行HarmonyOS项目 文档中心 1.1. HarmonyOS端 1.1.1. 准备工作 &#xff08;1&#xff09;下载DevEco Studio开发工具。   &#xff08;2&#xff09;在 DevEco Studio 中打开任意一个项目&#xff08;也可以新建一个空项目&#xff09;。   &#xff08;3&…

WPF+MVVM案例实战(十三)- 封装一个自定义消息弹窗控件(上)

文章目录 1、案例效果2、功能实现1、创建文件2、资源文件获取3、枚举实现3、弹窗实现1、界面样式实现2、功能代码实现4、总结1、案例效果 2、功能实现 1、创建文件 打开 Wpf_Examples 项目,我们在用户控件类库中创建一个窗体文件 SMessageBox.xaml,同时创建枚举文件夹 Enum…

uniapp封装movable-area+movable-view组件,实现悬浮按钮可拖动,自动吸附边缘效果,自动向两边靠拢

兼容H5、App、微信小程序 子组件 /components/ShopCar/ShopCar.vue <template><view class"ShopCar"><movable-area class"movableArea" v-if"isShow"><movable-view class"movableView" :position"posi…

vector中去除重复的元素

1. 使用 std::sort 和 std::unique 这种方法首先对 std::vector 进行排序&#xff0c;然后使用 std::unique 函数将相邻的重复元素移到末尾&#xff0c;最后使用 erase 函数删除这些重复元素。 #include <iostream> #include <vector> #include <algorithm>…

Unity BesHttp插件修改Error log的格式

实现代码 找到插件的 UnityOutput.cs 然后按照需求替换为下面的代码即可。如果提示 void ILogOutput.Flush() { } 接口不存在&#xff0c;删除这行代码即可。 using Best.HTTP.JSON.LitJson; using System; using System.Collections.Generic; using UnityEngine; using Syst…

Python热化学固态化学模型模拟

&#x1f3af;要点 使用热化学方式&#xff0c;从材料项目数据库获得热力学数据构建固态材料无机合成模拟模型。固态反应网络是热力学相空间的模型&#xff0c;使得能够纳入简单的反应动力学行为。反应坐标图可视为加权有向图&#xff0c;其表示出热力学相空间的密集连接模型。…

winSCP使用root账户登录群晖

xshell或者putty 登录SSH 1. 获取root权限 sudo -i2. 设置一下 root账号的密码 synouser —setpw root 1234563. 设置一下root登录权限&#xff08;winSCP来登录&#xff09; vi /etc/ssh/sshd_config# Authentication:#LoginGraceTime 2m #PermitRootLogin prohibit-passw…