速通Docker === Docker Compose

目录

Docker Compose 简介

Docker Compose 常用命令

使用 Docker Compose 启动 WordPress

普通启动方式(使用 Docker 命令)

使用 Docker Compose 启动

Docker Compose 的特性


Docker Compose 简介

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它通过 YAML 文件配置应用程序的服务、网络和卷,从而可以轻松地启动、停止和管理多个容器。

Docker Compose 常用命令

Docker Compose 提供了许多命令来管理多容器应用程序,以下是一些常用命令及其用法:

  • docker compose up -d:启动服务,-d 表示后台运行。
  • docker compose down:停止并删除服务,-v 可选参数用于删除卷。
  • docker compose ps:列出正在运行的服务。
  • docker compose logs:查看服务日志,-f 实时跟踪。
  • docker compose build:构建服务镜像,--no-cache 禁用缓存。
  • docker compose exec:在运行的容器中执行命令。
  • docker compose restart:重启服务。
  • docker compose stop:停止服务。
  • docker compose start:启动已停止的服务。
  • docker compose pull:拉取服务的镜像。
  • docker compose config:验证并查看配置文件。
  • docker compose run:运行一次性命令,--rm 完成后删除容器。

使用 Docker Compose 启动 WordPress

WordPress 是一个功能强大且广泛使用的开源内容管理系统(CMS),基于 PHP 和 MySQL 构建。它允许用户通过简单的安装和配置,快速搭建个人博客、企业网站、新闻门户等多种类型的网站。WordPress 提供了丰富的主题和插件生态系统,用户可以根据自己的需求轻松定制网站的外观和功能。

普通启动方式(使用 Docker 命令)

创建网络

docker network create blog

启动 MySQL 容器

docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=shiguang \
-e MYSQL_DATABASE=wordpress \
-v mysql-data:/var/lib/mysql \
-v /home/mysql/config:/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=shiguang \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress:/var/www/html \
--restart always --name wordpress-app \
--network blog \
wordpress:latest

使用 Docker Compose 启动

version指定 Docker Compose 文件版本(如 3.8)。
services定义服务(容器)的集合。
image指定服务使用的 Docker 镜像。
container_name设置服务的容器名称。
ports映射容器端口到宿主机端口(如 8080:80)。
environment设置服务的环境变量(如 MYSQL_ROOT_PASSWORD)。
volumes挂载卷到容器(如 mysql-data:/var/lib/mysql)。
restart设置容器的重启策略(如 alwayson-failure)。
depends_on定义服务依赖关系(如 depends_on: [mysql])。
networks定义服务所属的网络。

编写 docker-compose.yml 文件

# 服务名称
name: myblog
# 服务
services:mysql:# 容器名称container_name: mysql# 镜像image: mysql:8.0# 端口ports:- "3306:3306"# 环境变量environment:- MYSQL_ROOT_PASSWORD=shiguang- MYSQL_DATABASE=wordpress# 挂载volumes:- mysql-data:/var/lib/mysql- /opt/docker/mysql/config:/etc/mysql/conf.d# 重启策略restart: always# 网络networks:- blogwordpress:# 镜像image: wordpress# 端口ports:- "8080:80"# 环境变量environment:  WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: shiguangWORDPRESS_DB_NAME: wordpress# 挂载volumes:- wordpress:/var/www/html# 重启策略restart: always# 网络networks:- blog# 依赖depends_on:- mysqlvolumes:# 挂载mysql-data:wordpress:networks:# 网络blog:

启动服务

切换到 docker-compose.yml 文件所在目录。

执行命令:docker compose up -d

指定文件名启动

如果文件名不是默认的 docker-compose.yml,可以使用 -f 指定文件名:

docker compose -f compose.yml up -d

Docker Compose 的特性

增量更新

修改 docker-compose.yml 文件后重新启动应用,只会触发修改项的重新启动。

数据安全

默认情况下,即使使用 docker-compose down 停止容器,所有挂载的卷也不会被移除。

如果需要删除容器的同时删除所有卷,可以使用以下命令:

docker compose down --rmi all -v

通过 Docker Compose,可以更高效地管理多容器应用程序,简化开发和部署流程。

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

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

相关文章

关于BAR(PCIE BAR或AXI BAR)的解释

假设某BAR的默认值是xxxx_0000(这里表示8个比特位),其中低4位不可写,可操作的最低位是4,所以该BAR的大小是2^416字节; 1、系统软件向BAR写0xFF 2、系统软件读BAR,读到的值是0xF0,于是…

MySQL 事件调度器

MySQL 事件调度器确实是一个更方便且内置的解决方案,可以在 MySQL 服务器端自动定期执行表优化操作,无需依赖外部工具或应用程序代码。这种方式也能减少数据库维护的复杂性,尤其适用于在数据库频繁更新或删除时进行自动化优化。 使用 MySQL …

ESP32服务器和PC客户端的Wi-Fi通信

ESP32客户端-服务器Wi-Fi通信 本指南将向您展示如何设置ESP32板作为服务端,PC作为客户端,通过HTTP通信,以通过Wi-Fi(无需路由器或互联网连接)交换数据。简而言之,您将学习如何使用HTTP请求将一个板的数据发…

为什么IDEA提示不推荐@Autowired❓️如果使用@Resource呢❓️

前言 在使用 Spring 框架时,依赖注入(DI)是一个非常重要的概念。通过注解,我们可以方便地将类的实例注入到其他类中,提升开发效率。Autowired又是被大家最为熟知的方式,但很多开发者在使用 IntelliJ IDEA …

如何用数据编织、数据虚拟化与SQL-on-Hadoop打造实时、可扩展兼容的数据仓库?

在大数据技术迅猛发展的背景下,许多人认为传统数据仓库已过时。然而,这种观点忽略了数据仓库的核心价值:统一的数据视图、强大的业务逻辑支撑以及丰富的数据分析能力。在企业数据架构转型中,数据仓库不仅未被淘汰,反而…

15 分布式锁和分布式session

在java中一个进程里面使用synchronized在new出来对象头信息中加锁,如果是静态方法中在加载的类信息中加锁(我们在锁的原理中讲过)。如果使用lock加锁可以自己指定。这些都是在同一个进程空间中的操作。如果在分布式环境中由于程序不在一个进程空间,就没办…

mysql数据被误删的恢复方案

文章目录 一、使用备份恢复二、使用二进制日志(Binary Log)三、使用InnoDB表空间恢复四、使用第三方工具预防措施 数据误删是一个严重的数据库管理问题,但通过合理的备份策略和使用适当的恢复工具,可以有效地减少数据丢失的风险…

DuckDB:Golang操作DuckDB实战案例

DuckDB是一个嵌入式SQL数据库引擎。它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的。DuckDB支持各种数据类型和SQL特性。凭借其在以内存为中心的环境中处理高速分析的能力,它迅速受到数据科学家和分析师的欢迎。在这篇博文中&#xff0…

day1代码练习

输出3-100以内的完美数&#xff0c;(完美数&#xff1a;因子和(因子不包含自身)数本身) #include <stdio.h>// 判断一个数是否为完美数的函数 int panduan(int n) {if (n < 2) {return 0; // 小于2的数不可能是完美数}int sum 1; // 因子和初始化为1&#xff08;因…

dify大模型应用开发平台搭建

原文地址&#xff1a;dify大模型应用开发平台搭建 – 无敌牛 欢迎参观我的技术分享网站&#xff1a;无敌牛 – 技术/著作/典籍/分享等 之前分享了一个私有化部署开源大模型的方法&#xff0c;具体参看往期文章&#xff1a;私有化部署开源AI模型 – 无敌牛 今天搭建一个大模型…

PC端实现PDF预览(支持后端返回文件流 || 返回文件URL)

一、使用插件 插件名称&#xff1a;vue-office/pdf 版本&#xff1a;2.0.2 安装插件&#xff1a;npm i vue-office/pdf^2.0.2 1、“vue-office/pdf”: “^2.0.2”, 2、 npm i vue-office/pdf^2.0.2 二、代码实现 // 引入组件 &#xff08;在需要使用的页面中直接引入&#x…

【统计信号处理基础——估计与检测理论】Vol1.Ch1. 引言

系列目录 【统计信号处理基础——估计与检测理论】Vol1.Ch2. 最小方差无偏估计 文章目录 1. 信号处理中的估计2. 估计的数学问题3. 估计量性能评估习题1.11.21.31.41.5 1. 信号处理中的估计 从离散时间波形或一组数据集中提取参数的问题。我们有 N N N点数据集 { x [ 0 ] , x …

Spring Boot 邂逅Netty:构建高性能网络应用的奇妙之旅

一、引言 在当今数字化时代&#xff0c;构建高效、可靠的网络应用是开发者面临的重要挑战。Spring Boot 作为一款强大的 Java 开发框架&#xff0c;以其快速开发、简洁配置和丰富的生态支持&#xff0c;深受广大开发者喜爱。而 Netty 作为高性能、异步的网络通信框架&#xff…

【openwrt】openwrt odhcpd IPv6 prefix_filter选项说明

prefix_filter 在 OpenWrt 的 odhcpd 配置中,prefix_filter 是一个重要的选项,用于控制哪些 IPv6 前缀可以通过 Router Advertisement (RA) 或 DHCPv6 广播到客户端 prefix_filter 的作用 prefix_filter 的主要功能是限制路由器向客户端广播的 IPv6 前缀。它允许管理员指定一…

Spring--SpringMVC使用(接收和响应数据、RESTFul风格设计、其他扩展)

SpringMVC使用 二.SpringMVC接收数据2.1访问路径设置2.2接收参数1.param和json2.param接收数据3 路径 参数接收4.json参数接收 2.3接收cookie数据2.4接收请求头数据2.5原生api获取2.6共享域对象 三.SringMVC响应数据3.1返回json数据ResponseBodyRestController 3.2返回静态资源…

Unity在WebGL中拍照和录视频

原工程地址https://github.com/eangulee/UnityWebGLRecoder Unity版本2018.3.6f1&#xff0c;有点年久失修了 https://github.com/xue-fei/Unity.WebGLRecorder 修改jslib适配了Unity2021 效果图 录制的视频 Unity在WebGL中拍照和录视频

数据结构——AVL树的实现

Hello&#xff0c;大家好&#xff0c;这一篇博客我们来讲解一下数据结构中的AVL树这一部分的内容&#xff0c;AVL树属于是数据结构的一部分&#xff0c;顾名思义&#xff0c;AVL树是一棵特殊的搜索二叉树&#xff0c;我们接下来要讲的这篇博客是建立在了解搜索二叉树这个知识点…

无监督<视觉-语言>模型中的跨模态对齐

在当前的人工智能领域&#xff0c;跨模态学习尤其是视觉和语言的结合&#xff0c;正迅速成为一项基础性技术。传统的视觉模型和语言模型大多是分开训练的&#xff0c;处理独立模态的数据。然而&#xff0c;随着视觉-语言模型&#xff08;Vision-Language Models, VLMs&#xff…

后端SpringBoot学习项目-用户管理-增删改查-service层

仓库地址 在初版代码中&#xff0c;已经实现了基础的增删改查。 但是&#xff0c;逻辑处理都放在Controller层中并没有分为Service层&#xff0c;所以&#xff0c;代码升级时候必须补充上去。 代码结构 升级后的代码结构有所变化。 --common 公共插件 --controller…

【25美赛A题-F题全题目解析】2025年美国大学生数学建模竞赛(MCM/ICM)解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…