Docker Compose 配置指南

devtools/2024/12/27 20:43:21/

目录

      • 1. Docker Compose 配置
        • 1.1 基本配置结构
        • 1.2 `docker-compose.yml` 的各部分
        • 1.3 常用配置选项
      • 2. Docker Compose 使用方法
        • 2.1 创建 Docker Compose 配置文件
        • 2.2 启动服务
        • 2.3 查看容器状态
        • 2.4 查看服务日志
        • 2.5 停止服务
        • 2.6 重新构建服务
      • 3. Docker Compose 常用命令
      • 4. 总结

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 docker-compose.yml 文件,你可以轻松地定义应用中的服务、网络、存储卷等资源,并用一个命令启动所有服务。Docker Compose 主要用于简化多容器应用的开发、测试和部署流程。

本文将详细介绍 Docker Compose 的配置、常用命令,以及使用方法的具体示例。

1. Docker Compose 配置

Docker Compose 的核心配置文件是 docker-compose.yml,它遵循 YAML 格式来定义应用中的多个服务。

1.1 基本配置结构

一个最基础的 docker-compose.yml 文件结构通常包括以下部分:

services:# 定义服务web:image: nginx  # 使用官方 nginx 镜像ports:- "8080:80"  # 将宿主机的8080端口映射到容器的80端口volumes:- ./html:/usr/share/nginx/html  # 将本地html文件夹挂载到容器的html目录networks:- webnet  # 使用名为 webnet 的网络db:image: mysql:5.7  # 使用 MySQL 镜像environment:MYSQL_ROOT_PASSWORD: example  # 设置MySQL root 密码networks:- webnet  # 使用同样的网络networks:webnet:  # 定义 webnet 网络
dockercomposeyml__37">1.2 docker-compose.yml 的各部分
  • services:定义服务,每个服务可以有一个容器。每个服务都可以使用一个 Docker 镜像,或者从 Dockerfile 构建。
  • image:指定 Docker 镜像,通常是公开镜像(如 nginx),或者是自己构建的镜像。
  • ports:定义端口映射,"宿主机端口:容器端口"
  • volumes:挂载数据卷,将宿主机的文件夹或文件挂载到容器内部,常用于持久化存储数据。
  • environment:设置环境变量,通常用于传递配置参数。
  • networks:定义和配置 Docker 网络。可以指定多个服务共享同一个网络。
1.3 常用配置选项
  • build:从 Dockerfile 构建镜像。

    build:context: ./app  # 指定 Dockerfile 目录
    
  • depends_on:服务之间的依赖关系,确保容器启动顺序。

    depends_on:- db
    
  • restart容器退出后的重启策略。

    restart: always  # 始终重启容器
    

2. Docker Compose 使用方法

2.1 创建 Docker Compose 配置文件

首先,创建一个 docker-compose.yml 文件,定义你的应用程序中所需的服务。

  1. 在你的项目根目录下,创建一个 docker-compose.yml 文件。
  2. 在文件中定义所有的服务,如 Web 服务、数据库服务等。

例如,创建一个包含 nginxMySQL 的示例文件:

services:web:image: nginxports:- "8080:80"volumes:- ./html:/usr/share/nginx/htmlnetworks:- webnetdb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: examplenetworks:- webnetnetworks:webnet:
2.2 启动服务
  1. docker-compose.yml 文件所在的目录,打开命令行并运行以下命令:

    docker compose up
    

    该命令会启动所有定义在 docker-compose.yml 中的服务。你可以通过浏览器访问 http://localhost:8080 来查看 Nginx 服务是否已经启动。

  2. 如果你希望容器在后台运行,可以使用 -d 参数:

    docker compose up -d
    

    这样,Docker Compose 将会在后台启动所有服务。

2.3 查看容器状态

可以使用以下命令查看正在运行的容器状态:

docker compose ps

输出示例如下:

       Name                     Command               State           Ports         
------------------------------------------------------------
myapp_db_1          docker-entrypoint.sh mysqld   Up      3306/tcp
myapp_web_1         /docker-entrypoint.sh nginx    Up      0.0.0.0:8080->80/tcp
2.4 查看服务日志

可以查看各个服务的日志信息:

docker compose logs

或者查看特定服务的日志,例如查看 web 服务:

docker compose logs web
2.5 停止服务

停止并删除所有服务容器及其相关资源:

docker compose down

如果只想停止服务,而不删除容器,可以使用:

docker compose stop
2.6 重新构建服务

如果修改了 Dockerfiledocker-compose.yml 中的某些内容,可以使用 --build 参数重新构建镜像:

docker compose up --build

这样会重新构建服务并启动容器


3. Docker Compose 常用命令

docker_compose_up_180">3.1 docker compose up

启动和运行多容器服务。通过 docker-compose.yml 文件来启动、停止容器

docker compose up

常用参数:

  • -d:后台运行容器
  • --build:在启动之前构建镜像。
  • --force-recreate:强制重新创建容器
docker_compose_down_194">3.2 docker compose down

停止并删除所有容器、网络、卷等资源。

docker compose down

常用参数:

  • --volumes-v:同时删除数据卷。
  • --remove-orphans:删除与当前服务不相关的容器
docker_compose_ps_207">3.3 docker compose ps

查看当前运行的容器和服务状态。

docker compose ps

输出包括每个容器的名称、状态、端口等信息。

docker_compose_logs_217">3.4 docker compose logs

查看服务日志。默认情况下,显示所有服务的日志。

docker compose logs

查看特定服务的日志:

docker compose logs <service-name>

例如,查看 web 服务的日志:

docker compose logs web
docker_compose_exec_237">3.5 docker compose exec

在正在运行的容器内执行命令。比如,进入 web 容器的 bash 环境:

docker compose exec web bash
docker_compose_stop_245">3.6 docker compose stop

停止所有运行中的服务容器,但不会删除它们。停止后可以通过 docker compose start 恢复服务。

docker compose stop
docker_compose_build_253">3.7 docker compose build

手动构建镜像。如果在 docker-compose.yml 中使用了 build 选项,可以使用此命令来重新构建镜像。

docker compose build

4. 总结

Docker Compose 是一个功能强大的工具,适用于本地开发、测试和多容器应用的管理。通过一个简单的 docker-compose.yml 文件,你可以定义、构建并管理多个容器应用,避免了手动管理多个 Docker 容器的复杂性。本文介绍了如何配置 Docker Compose 文件、使用流程和常用命令,帮助你更高效地使用 Docker Compose 来部署和管理容器化应用。

常见的 Docker Compose 命令如 updownpslogs 等,可以帮助你快速管理和调试多容器应用。此外,Compose 的强大功能还包括服务依赖、环境变量、卷管理等,极大地提升了容器化应用的开发效率和可维护性。


http://www.ppmy.cn/devtools/145914.html

相关文章

每日小题打卡

目录 幂次方 手机键盘 简单排序 校庆 性感素数 幂次方 题目描述 对任意正整数 N&#xff0c;计算 X^Nmod233333 的值。 输入格式 共一行&#xff0c;两个整数 X 和 N。 输出格式 共一行&#xff0c;一个整数&#xff0c;表示 X^Nmod233333 的值。 数据范围 1≤…

Linux内核 -- UIO (User-space I/O) 简介与使用笔记

UIO (User-space I/O) 简介 UIO (User-space I/O) 是 Linux 内核提供的一种机制&#xff0c;用于简化设备驱动的开发。它将设备的硬件资源&#xff08;如内存映射、中断等&#xff09;通过简单的接口暴露给用户空间程序&#xff0c;从而使用户可以在用户空间编写复杂的设备逻辑…

内网穿透ubuntu20 docker coplar

sudo apt-get install curl curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash ubuntu-base报错 /sbin/init:No such file or directory解决办法 apt install systemd 命令安装即可 cpolar version 1.3 token认证 登录cpolar官网后台…

《信管通低代码信息管理系统开发平台》Windows环境安装说明

1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&…

数据可视化期末复习-简答题

数据可视化的标准 实用性 完整性 真实性 艺术性 交互性 数据可视化的目标 通过数据可视化有效呈现数据中的重要特征 通过数据可视化揭示事物内部的规律和数据之间的内在联系 通过数据可视化辅助人们理解事物的概念和过程 通过数据可视化对模拟和测量进行质量监控 通…

音视频入门知识(四):封装篇

⭐四、封装篇 H264封装成mp4、flv等格式&#xff0c;那为什么需要封装&#xff1f; ​ h264也能播放&#xff0c;但是按照帧率进行播放&#xff0c;可能不准 ★FLV **FLV&#xff08;Flash Video&#xff09;**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒…

第1章 R语言中的并行处理入门

标准&#xff1a;时间,开发&#xff0c;运行,工具&#xff0c;R机器&#xff0c;多核。 rdsm,openmp,conda。 相互网页外链。 第一章 1.1 反复出现的主题: 良好并行所具有的标准 R(解释性语言)的核心操作都在语言内部进行了高效的实现&#xff0c;因而只要正确使用&#xff…

2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码

引言 本期介绍了一种基于加权平均位置概念的元启发式优化算法&#xff0c;称为加权平均优化算法Weighted average algorithm&#xff0c;WAA。该成果于2024年12月最新发表在中JCR1区、 中科院1区 SCI期刊 Knowledge-Based Systems。 在WAA算法中&#xff0c;加权平均位置代表当…