Docker Compose 使用方法

目录

前言

安装 Docker Compose

Ubuntu 安装与更新

Red Hat 安装与更新

验证是否安装 Docker Compose

创建 docker-compose.yml 文件

创建一个MySQL 与 tomcat 示例

使用Docker Compose启动服务


前言

Docker Compose 是一个工具,旨在帮助定义和 共享多容器应用程序。使用 Compose,我们可以创建一个 YAML 文件来定义服务 只需一个命令,就可以旋转或拆除所有内容。

使用 Compose 的最大优点是您可以在文件中定义应用程序堆栈,并将其保留在 您的项目存储库(现在受版本控制),并轻松使其他人能够参与您的项目。 有人只需要克隆你的存储库并启动撰写应用程序。

安装 Docker Compose

如果你安装了适用于 Windows、或 Linux 的 Docker 桌面,那么您已经拥有 Docker Compose!

Linux 如果不是 Docker 桌面,可以使用存储库安装与更新;

Ubuntu 安装与更新

#安装
sudo apt-get update
sudo apt-get install docker-compose-plugin
#更新
sudo apt-get update
sudo apt-get install docker-compose-plugin

Red Hat 安装与更新

sudo yum update
sudo yum install docker-compose-plugin
sudo yum update
sudo yum install docker-compose-plugin

验证是否安装 Docker Compose

docker compose version

创建 docker-compose.yml 文件

在你的项目目录中创建一个名为 docker-compose.yml 的文件。在这个文件中,你可以定义你的应用程序的服务、网络和卷等。

创建一个MySQL 与 tomcat 示例

version: '3.8'services:mysql:image: mysql:latestcontainer_name: mysql_dbenvironment:MYSQL_ROOT_PASSWORD: your_root_passwordports:- "3306:3306"volumes:- data_group:/var/lib/mysqltomcat:image: tomcat:latestcontainer_name: tomcat_serverports:- "8080:8080"volumes:- data_group:/usr/local/tomcat/webappsvolumes:data_group:external: true

1、version: '3.8':这个文件使用的是Docker Compose的版本3.8。

2、这个服务使用最新的MySQL镜像(mysql:latest);并将容器命名为"mysql_db";在environment部分,我们设置了MySQL数据库的root用户密码;通过ports部分,我们将容器的3306端口映射到主机的3306端口,允许从主机连接MySQL服务;定义了一个命名卷mysql_data,用于持久化MySQL数据库的数据。

3、这个服务使用最新的Tomcat镜像(tomcat:latest);并将容器命名为"tomcat_server";通过ports部分,我们将容器的8080端口映射到主机的8080端口,允许从主机访问Tomcat服务;定义了一个命名卷tomcat_data,用于持久化Tomcat的web应用程序(webapps)数据。

4、在volumes部分,我们对之前定义的两个命名卷mysql_data和tomcat_data进行了声明。这样,Docker将会为这两个命名卷创建持久化存储,并确保在容器重新创建时保留数据。

5、最后可以使用"volumes"关键字的扩展语法来将多个卷组合成一个组。让我们将"mysql_data"和"tomcat_data"放入一个组,并命名该组为"data_group"。

使用Docker Compose启动服务

Linux中也差不多,windows 中打开命令行终端(PowerShell或CMD)并导航到保存docker-compose.yml文件的目录。例如,如果您保存在 D:\docker 目录下,可以通过以下命令进入该目录;

-d标志是可选的,它使得Docker Compose在后台运行 容器。

docker-compose up -d

docker images命令可以列出所有本地已下载的Docker镜像:

docker images

 

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

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

相关文章

Docker 容器生命周期:创建、启动、暂停与停止----从创建到停止多角度分析

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

解决Hadoop审计日志hdfs-audit.log过大的问题

【背景】 新搭建的Hadoop环境没怎么用,就一个环境天天空跑,结果今天运维告诉我说有一台服务器磁盘超过80%了,真是太奇怪了,平台上就跑了几个spark测试程序,哪来的数据呢? 【问题调查】 既然是磁盘写满了&…

Python案例分析|使用Python图像处理库Pillow处理图像文件

本案例通过使用Python图像处理库Pillow,帮助大家进一步了解Python的基本概念:模块、对象、方法和函数的使用 使用Python语言解决实际问题时,往往需要使用由第三方开发的开源Python软件库。 本案例使用图像处理库Pillow中的模块、对象来处理…

从互联网到云时代,Apache RocketMQ 是如何演进的?

作者:隆基 2022 年,RocketMQ 5.0 的正式版发布。相对于 4.0 版本而言,架构走向云原生化,并且覆盖了更多业务场景。 消息队列演进史 操作系统、数据库、中间件是基础软件的三驾马车,而消息队列属于最经典的中间件之一…

八大排序算法--希尔排序(动图理解)

目录 希尔排序 概念 算法思路 动画演示 代码如下 复杂度分析 时间复杂度测试 运行结果 完整代码 创作不易,如果本篇博客对您有一定的帮助,大家记得留言点赞哦。 希尔排序 概念 希尔排序是插入排序的一种,是对直接插入排序的优化。其…

华为数通HCIP-IP组播基础

点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需要下载资料B。此类业务一般由单播承载,服务器对于不同用户发送不同的点到点数据流。 ospf、isis…

TP DP PP 并行训练方法介绍

这里写目录标题 张量并行TP流水线并行 PPnaive模型并行GPipePipeDream 数据并行DPFSDP 张量并行TP 挖坑 流水线并行 PP 经典的流水线并行范式有Google推出的Gpipe,和微软推出的PipeDream。两者的推出时间都在2019年左右,大体设计框架一致。主要差别为…

【Apollo学习笔记】—— Cyber RT之调度

文章目录 前言相关代码整理 调度介绍Cyber RT的改进实时操作系统资源限制&优先级协程 Cyber RT调度策略任务窃取两种任务类型componen组件自定义任务 Cyber调度实践配置文件DAG文件cyber_launch文件component组件BUILD文件 问题参考 前言 本文是对Cyber RT的学习记录,文章可…

devops(前端)

1.前言 前端的打包流程和后端的流程是一样的,只是打包的环境和制作的镜像有所不同,前端需要使用nodejs环境打包,镜像也是使用nginx镜像,因为用的是k8s的pod运行镜像,还需要使用configmap挂载nginx的配置,一…

二、vagrant中安装centos-7

篇章二、vagrant中安装centos-7 前言 使用Vagrant创建镜像时,需要指定一个镜像,也就是box,若不存在Vagrant则会先从网上下载,而后缓存在本地目录下。 Vagrant有一个 镜像网站 ,可以根据需要在这个网站中下载所需镜像…

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算 [ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} ​a11​⋯am1​​⋯⋯⋯​a1n​⋯amn​​ ​ 矩阵就是二维数组&…

JavaWeb(7)——前端综合案例1(面向对象)

目录 一、实例需求 ❗ 二、 实现 🎯 三、代码优化 💂 💻 👴🏽 四、继续优化和总结 🌕👍 五、需要注意的 ❌ 一、实例需求 ❗ JS进阶-day3-184-综合案例-模态框构造函数写法 二、 实现 &a…

Error message “error:0308010C:digital envelope routines::unsupported“

https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported nvm install 16即可解决

花费7元训练自己的GPT 2模型

在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前…

MySQL索引特性

MySQL索引特性 理论部分:一.什么是索引?二.索引的概念三.认识磁盘1. 磁盘的结构2. 磁盘的随机访问(Random Access)与连续访问(Sequential Access) 四.MySQL与磁盘交互的基本单位五.索引的理解1. 主键索引现…

SpringBoot 实现数据加密脱敏(注解 + 反射 + AOP)

SpringBoot 实现数据加密脱敏(注解 反射 AOP) 场景:响应政府要求,商业软件应保证用户基本信息不被泄露,不能直接展示用户手机号,身份证,地址等敏感信息。 根据上面场景描述,我们…

不同 vlan 之间互通

不同VLAN间的用户要实现互通 如果是不同网段用户,常用的技术为:vlanif 和 单臂路由都可以解决不同 vlan 之间三层包互通问题。 VLANIF VLANIF接口是一种三层的逻辑接口,能实现不同VLAN间,不同网段的用户进行三层互通。由于配置…

概率论与数理统计复习总结3

概率论与数理统计复习总结,仅供笔者复习使用,参考教材: 《概率论与数理统计》/ 荣腾中主编. — 第 2 版. 高等教育出版社《2024高途考研数学——概率基础精讲》王喆 概率论与数理统计实际上是两个互补的分支:概率论 在 已知随机…

【使用维纳滤波进行信号分离】基于维纳-霍普夫方程的信号分离或去噪维纳滤波器估计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

error: #5: cannot open source input file “core_cmInstr.h“

GD32F103VET6和STM32F103VET6引脚兼容。 GD32F103VET6工程模板需要包含头文件:core_cmInstr.h和core_cmFunc.h,这个和STM32F103还是有区别的,否则会报错,如下: error: #5: cannot open source input file "core…