docker compose各参数配置简单介绍

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,通过使用简单的 YAML 文件来配置应用程序的服务、网络和卷等。

docker compose简介

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,通过使用简单的 YAML 文件来配置应用程序的服务、网络和卷等。


使用 Docker Compose 可以方便地定义和管理容器化应用程序的服务栈。在配置文件中,你可以指定各个服务所需的镜像、环境变量、端口映射、数据卷挂载等信息。通过一次性执行 docker-compose up 命令,Docker Compose 将会自动下载所需的镜像,并启动所有服务。此外,还可以使用 docker-compose down 命令停止服务并清理容器。


使用 Docker Compose 的好处是,它使得部署和管理多个容器变得简单而高效。你可以将整个应用程序的服务定义放在一个文件中,便于版本控制和共享。同时,通过 Docker Compose,你可以轻松部署一致性的开发、测试和生产环境,减少因环境差异而造成的问题。


docker compose 各项参数介绍

1.version: 指定 Docker Compose 文件的版本。例如,version: '3' 表示使用 Docker Compose 文件格式的版本 3。


2.services: 定义各个服务。在这个部分中,你可以为每个服务指定名称、镜像、环境变量、端口映射等信息。


3.image: 指定服务所使用的镜像。例如,image: nginx:latest 表示使用最新版本的 Nginx 镜像。


4.environment: 设置环境变量。你可以通过 environment 参数为服务指定所需的环境变量及其值。例如,environment: - MYSQL_ROOT_PASSWORD=example 表示设置 MySQL 服务的 MYSQL_ROOT_PASSWORD 环境变量为 "example"。


5.ports: 指定端口映射。通过 ports 参数,你可以将容器内部的端口映射到主机的指定端口上。例如,ports: - 8080:80 表示将容器的 80 端口映射到主机的 8080 端口上。


6.volumes: 配置数据卷挂载。使用 volumes 参数可以将容器内的路径与主机上的目录或卷进行映射。例如,volumes: - ./data:/app/data 表示将主机上的 ./data 目录挂载到容器的 /app/data 路径上。


7.networks: 配置网络。通过 networks 参数,你可以为服务指定要连接到的网络。这个参数可用于定义自定义网络以及连接到现有网络。


8.depends_on: 设置服务依赖。使用 depends_on 参数可以指定服务之间的依赖关系。例如,depends_on: - db 表示该服务依赖于名为 db 的服务。


这些只是 Docker Compose 配置文件中一些常用的参数。建议查阅 Docker Compose 官方文档,了解更多参数和配置选项的详细介绍。


代码演示

services:
    client:
    build:
    context: ./client
    dockerfile: ./Dockerfile
    restart: always
    ports:
        - 9540:9540
    volumes:
        - upload:/usr/share/nginx/html/static
    depends_on:
        - servers
servers:
    build:
    context: ./servers
    dockerfile: ./Dockerfile
    command: npm run start:docker
    restart: always
    ports:
        - 8080:8080
    volumes:
        - upload:/upload
    depends_on:
        - mysql
        - redis
mysql:
    image: mysql
    command: mysqld --character-set-server=utf8mb4 --collation-                            
    server=utf8mb4_unicode_ci
    restart: always
    ports:
        - 20003:3306
    environment:
    MYSQL_ROOT_PASSWORD: 'root'
    MYSQL_DATABASE: 'BASE_DB'
    volumes:
        - mysql:/var/lib/mysql
        - ./db/kapok.sql:/docker-entrypoint-initdb.d/kapok.sql
adminer:
    image: adminer
    restart: always
    ports:
    8088:8080
redis:
    image: redis
    restart: always
    ports:
        - 20004:6379
    volumes:
        - redis:/data

上图代码介绍

1.client 服务:这是一个前端服务,使用了一个 Dockerfile 来构建镜像。它将容器内部的 9540 端口映射到主机的 9540 端口上,并将容器内的 /usr/share/nginx/html/static 路径挂载到名为 upload 的数据卷上。此服务依赖于名为 servers 的服务。


2.servers 服务:这是一个后端服务,同样使用了一个 Dockerfile 来构建镜像。它通过运行 npm run start:docker 命令来启动服务。该服务将容器内部的 8080 端口映射到主机的 8080 端口上,并将容器内的 /upload 路径挂载到名为 upload 的数据卷上。此服务依赖于名为 mysql 和 redis 的服务。


3.mysql 服务:这是一个 MySQL 数据库服务,使用了官方的 MySQL 镜像。该服务将容器内部的 3306 端口映射到主机的 20003 端口上,并设置了一些环境变量来配置 MySQL 实例。此服务还将容器内的 /var/lib/mysql 路径挂载到名为 mysql 的数据卷上,并将主机上的 ./db/kapok.sql 文件挂载到容器内的 /docker-entrypoint-initdb.d/kapok.sql 路径上。


4.redis 服务:这是一个 Redis 缓存服务,使用了官方的 Redis 镜像。该服务将容器内部的 6379 端口映射到主机的 20004 端口上,并将容器内的 /data 路径挂载到名为 redis 的数据卷上。


最后,还定义了三个数据卷 mysql、redis 和 upload,用于持久化存储数据库数据、Redis 数据和前端上传的文件。

相关文章
|
4月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
424 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
6月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
2086 3
|
4月前
|
运维 数据可视化 开发者
2025年 三个 Docker Compose 可视化管理器测评
本文对比了三款主流的 Docker Compose 可视化管理工具。随着 Docker 的普及,Compose 已成为多容器应用部署的标准,但 YAML 配置复杂、协作困难等问题也日益突出。三款工具各有侧重:Docker Desktop 适合个人本地开发,Portainer 适合小团队运维管理,而 Websoft9 则通过 GitOps 实现了强大的版本控制与团队协作能力。文章从可视化编辑、部署便捷性、版本管理等方面进行评测,为不同使用场景提供了推荐方案,展望了未来 Compose 管理向 GitOps 深度融合的发展趋势。
517 1
2025年 三个 Docker Compose 可视化管理器测评
|
6月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
3842 59
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
3027 56
|
数据可视化 开发工具 git
GitOps 驱动的 Docker Compose 可视工具化来了,图形化编辑器上玩转容器编排
Docker Compose 简化了多容器应用的部署,但随着应用复杂度上升,文本配置方式逐渐暴露出维护难、协作效率低等问题。基于 GitOps 的可视化 Docker Compose 工具应运而生,通过图形界面降低使用门槛,提升配置准确性和团队协作效率。结合 GitOps,实现配置变更的版本追踪、自动化部署与环境一致性,为多容器应用管理提供高效、安全的解决方案。
|
7月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
6月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
516 11
|
6月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
460 0

热门文章

最新文章