Docker:Docker Compose(补充三)

news2025/1/24 14:33:45

Docker:Docker Compose

  • 1. Docker Compose 批量管理容器的工具

1. Docker Compose 批量管理容器的工具

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用服务,它允许用户编排、组合和配置多个容器的部署。Docker Compose 主要用于开发、测试和生产环境,使得应用部署更为简洁和高效。

主要特点

  • 简化配置:通过使用 YAML 文件(通常命名为 docker-compose.yml),所有服务的配置可以在单个文件中进行管理,使得容器服务的配置更加集中和易于管理。

  • 一键部署:用户可以使用一个简单的命令 docker-compose up 来启动和停止整个应用。

  • 服务依赖管理:Docker Compose 允许用户定义服务间的依赖关系,确保服务的启动顺序符合依赖要求。

  • 重复使用:Docker Compose 项目可以在不同的环境中重复使用,保证了开发、测试和生产环境的一致性。

  • 隔离环境:每个项目可以在隔离的环境中运行,互不干扰。

核心组件

  • 服务(services):代表容器本身,在 docker-compose.yml 文件中配置,每个服务可以使用不同的镜像。

  • 网络(networks):定义容器间的网络连接,Docker Compose 默认设置一个网络并连接所有配置的服务。

  • 卷(volumes):用于数据持久化和数据共享,可以在容器间共享文件和目录。

  • 环境变量:可以在配置文件中设置环境变量,用于容器内应用的配置。

常用命令

  • docker-compose up:启动全部或特定的服务,并创建服务需要的任何网络和卷。
  • docker-compose down:停止并移除所有容器,可选地包括网络和卷。
  • docker-compose build:构建服务所需的镜像。
  • docker-compose logs:查看服务的输出日志。
  • docker-compose exec:在运行的服务容器中执行命令。

在这里插入图片描述

docker compose up -d 上线就是第一次配置

编写一个compose语句
官方文档:https://docs.docker.com/reference/compose-file/

原来我们只能通过命令逐个安装,比如安装Mysql与wordpass

#创建网络
docker network create blog

#启动mysql
docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=wordpress \
-v mysql-data:/var/lib/mysql \
-v /app/myconf:/etc/mysql/conf.d \
--restart always --name mysql \
--network blog \
mysql:8.0

#启动wordpress
docker run -d -p 8080:80 \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=123456 \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress:/var/www/html \
--restart always --name wordpress-app \
--network blog \
wordpress:latest
name: myblog
services:
  mysql:
    container_name: mysql   // 容器名
    image: mysql:8.0        // 用哪个镜像
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456 // 环境变量,第一种写法
      - MYSQL_DATABASE=wordpress
    volumes:
      - mysql-data:/var/lib/mysql    // 数据卷映射
      - /app/myconf:/etc/mysql/conf.d  // 目录挂载
    restart: always
    networks:
      - blog

  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql // 环境变量,第二种写法
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    restart: always
    networks:
      - blog
    depends_on:
      - mysql

volumes:
  mysql-data:    // 数据卷
  wordpress:

networks:
  blog:

在这里插入图片描述
第二次启动的时候会将修改的内容重新build与启动,但是老的没变的直接启动
在这里插入图片描述


下线后,删除对应的镜像还有卷
在这里插入图片描述

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

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

相关文章

lightRAG 论文阅读笔记

论文原文 https://arxiv.org/pdf/2410.05779v1 这里我先说一下自己的感受,这篇论文整体看下来,没有太多惊艳的地方。核心就是利用知识图谱,通过模型对文档抽取实体和关系。 然后基于此来构建查询。核心问题还是在解决知识之间的连接问题。 论…

Visual studio的AI插件-通义灵码

通义灵码 TONGYI Lingma 兼容 Visual Studio、Visual Studio Code、JetBrains IDEs 等主流 IDE;支持 Java、Python、Go、C/C、C#、JavaScript、TypeScript、PHP、Ruby、Rust、Scala 等主流编程语言。 安装 打开扩展管理器,搜送“TONGYI Lingma”&…

shutil 文件拷贝copy - python 实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

attack xv6

思路 被这个实验折磨了两天,可能是2024新出的一个实验内容,网上资料少,参考了一篇仅有的博客,吭哧吭哧分析出来了个大概吧…在此记录一下,以便帮助有需要的人。 attack xv6的ans只有几行代码,根据实验描述…

Flink CDC实时同步mysql数据

官方参考资料: https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/flink-sources/mysql-cdc/ Apache Flink 的 Change Data Capture (CDC) 是一种用于捕获数据库变化(如插入、更新和删除操作)的技术。Flink CDC…

eclipse 如何设置项目、不同类型文件的 utf8 编码

编码问题一直是软件开发中让人头疼的小细节,尤其是团队协作中,若编码格式不统一,乱码问题便会频繁出现。那么如何在 Eclipse 中统一设置项目和文件的 UTF-8 编码,避免因编码问题造成不必要的困扰呢?今天,我…

Unity中触发器Trigger无法被射线检测到的问题

今天在做项目的时候发现,同一个物体,当他是碰撞器的时候,可以被射线检测到. 但是当他变成触发器的时候,射线就检测不到了??? 本来以为就是这样的,但是查了资料发现并没有这样的限制,触发器也是可以正常被射线检测的 到处查资料都没有发现问题,后来发现是下面这个设置不知道…

第一个AJAX调用XMLHttpRequest

第一个AJAX调用XMLHttpRequest 创建对象,用于浏览器和服务器的通信,不需要刷新浏览器 const request new XMLHttpRequest();通过GET请求方式在API中请求数据 request.open(GET, https://restcountries.com/v3.1/name/Russia);注:我这里的…

群落生态学研究进展】Hmsc包开展单物种和多物种分析的技术细节及Hmsc包的实际应用

联合物种分布模型(Joint Species Distribution Modelling,JSDM)在生态学领域,特别是群落生态学中发展最为迅速,它在分析和解读群落生态数据的革命性和独特视角使其受到广大国内外学者的关注。在学界不同研究团队研发出…

如何在 Apifox 中发布多语言的 API 文档?

“API 文档是开发协作的桥梁,而多语言支持则让这座桥梁跨越更多的技术边界。使用 Apifox,不仅可以快速生成 API 文档,还能轻松实现多语言的支持与发布。今天,我们一起来探索 Apifox 在多语言文档发布中的最佳实践!” …

华为云检查服务器状态

VNC方式登录云服务器正常,但无法通过远程桌面连接方式登录云服务器时,推荐您按照以下思路排查问题。 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某…

leetcode212. 单词搜索 II

给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一…

无缝钢管内表面缺陷检测的自强化感知协调网络

摘要 无缝钢管是重要的工业材料。然而,无缝钢管中的内表面缺陷检测具有挑战性,并且会显著影响无缝钢管的性能和寿命。现有的检测方法是劳动强度大的,并且检测结果的可视化程度低。因此,本文提出了一种新型的管道内表面缺陷螺旋式全…

Kioptrix靶场渗透--level1.1

目录 环境搭建 镜像包下载 下载后解压,并修改配置 开始渗透 获取IP 获取具体服务 尝试sql注入 尝试命令执行 反弹shell 提权 查看Linux的内核版本 下载脚本 将脚本上传至靶机 编译脚本 编译后执行 第一个脚本失败,再找个脚本 使用cat /…

AI技术在演示文稿制作中的应用一键生成PPT

在快节奏的现代工作环境中,时间就是金钱。为了提高工作效率,许多专业人士都在寻找能够快速生成演示文稿(PPT)的工具。本文将探讨AI技术如何帮助用户自动生成演示文稿,从文案撰写到排版,最终输出成品&#x…

中国当代印章孙溟㠭篆刻锤凿印《无题Ⅵ》

孙溟㠭篆刻锤凿印《无题Ⅵ》 孙溟㠭篆刻锤凿印《无题Ⅵ》 此作品有人说看到了流星雨,有人说看到了战争,有人说看到了疾风暴雨,有人说看到了烟花庆新年,有人说是天气突变下的冰雹……!至于是什么仁者见仁智者见智。 孙…

游戏引擎学习第54天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们现在正专注于在游戏世界中放置小实体来代表所有的墙。这些实体围绕着世界的每个边缘。我们有活跃的实体,这些实体位于玩家的视野中,频繁更新,而那些离玩家较远的实体则以较低的频率运…

STM32F407ZGT6-UCOSIII笔记2:UCOSIII任务创建实验-Printf 函数卡住 UCOSIII 系统问题解决

今日简单编写熟悉一下UCOSIII系统的任务创建代码,理解一下OS系统: 并发现以及解决了 Printf 函数卡住 UCOSIII 系统问题解决 文章提供测试代码讲解、完整工程下载、测试效果图 目录 文件结构解释: 任务函数文件: 目前各个文件任…

linux centos 7 安装 mongodb7

MongoDB 是一个基于文档的 NoSQL 数据库。 MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。 MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。 MongoDB使用集合(Collections)来组织文档(Documents&a…

kafka的处理的一些问题 消费延迟

kafka的处理的一些问题 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大在Kafka的Leader副本宕机时 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大 比如我们这个kakfa集群一共有3个Broker节点 TOp1有5个分区&#xf…