docker compose各参数配置简单介绍

这篇具有很好参考价值的文章主要介绍了docker compose各参数配置简单介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 的数据卷上。此服务依赖于名为 mysqlredis 的服务。

  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 的数据卷上。

最后,还定义了三个数据卷 mysqlredisupload,用于持久化存储数据库数据、Redis 数据和前端上传的文件。文章来源地址https://www.toymoban.com/news/detail-733073.html

到了这里,关于docker compose各参数配置简单介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker-compose部署RocketMQ5.x 单机部署+配置参数详解

    提前先拉取需要的镜像文件,避免后面部署的时候出现镜像拉取失败的问题。 镜像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的时候最新发行版是5.1.0可以根据需求自行选择一个5.x的版本,部署流程不会有太大改变。 拉取最新版即可 这里使用compose v2版本 1、下载(使

    2024年02月08日
    浏览(53)
  • Docker部署RocketMQ5.x (单机部署+配置参数详解+不使用docker-compose直接部署)

    官网地址:https://rocketmq.apache.org/ 镜像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的时候最新发行版是5.1.0可以根据需求自行选择一个5.x的版本,部署流程不会有太大改变。 NameServer是一个简单的 Topic 路由注册中心,支持 Topic、Broker 的动态注册与发现,几乎无状态节点

    2024年02月06日
    浏览(76)
  • Node.js同时安装多个版本以及相关配置(简单易操作)

    Node.js是一个基于V8引擎的开源运行时环境,用于在服务器端运行JavaScript代码。它允许您使用JavaScript来编写服务器端应用程序,如网络应用、API和后端服务,而不仅仅局限于在浏览器中执行。Node.js的非阻塞I/O和事件驱动的特性使其特别适合处理高并发的网络应用程序。本篇主

    2024年02月06日
    浏览(42)
  • 【后端】深入浅出Node.js

    【后端目录贴】 Node特点 事件驱动、非阻塞I/O node和chrome浏览器区别 除了 HTML、WebKit和显卡 这些UI相关技术没有支持外,Node结构与Chrome十分相似,他们都是基于事件驱动的异步架构, 浏览器通过事件驱动来服务界面上的交互,Node通过事件驱动来服务I/O 。 非阻塞 I/O (Non-bl

    2024年01月22日
    浏览(47)
  • Node.js | JavaScript也能写后端?

    本文已收录于专栏 ⭐️ 《深入浅出Node.js》⭐️ 语雀前端知识沉淀 如果读者是一个前端开发的同学,不知道你有没有过这样的烦恼: 想做一个全栈的项目,但苦于不懂像 PHP、Python 或 Ruby 等动态编程语言。 如果专门学习的话,又觉得学习成本太大,不学的话服务端项目没办

    2024年02月01日
    浏览(51)
  • 自学WEB后端05-Node.js后端服务链接数据库redis

    嘿,亲爱的小伙伴们!😄 今天我要给大家分享一个超级方便且高效的 NoSQL 类型数据库——Redis!💡 它可不是一般的关系型数据库哦,而是以键值对形式存储数据的内存数据库。📚 快跟着我一起来学习如何安装和使用 Redis 吧!  自学WEB后端01-安装Express+Node.js框架完成Hello

    2024年02月07日
    浏览(50)
  • 用前端的语言写后端——Node.js之Express

    Express 是一种流行的模型视图控制器(MVC)Node.js框架,具有快速、极简和灵活的优点,为Web和移动应用程序开发提供了强大的功能集合。 最受欢迎的Node.js框架! 安装Node.js(你肯定已经安装好了Node.js,这点我们无需多言) 为你的应用创建一个目录,进入此目录并以此目录为你

    2024年03月21日
    浏览(52)
  • Node.js与TypeScript:优雅的后端开发方式

    随着前端 JavaScript语言的不断发展, Node.js 开发环境也越来越受到开发者们的欢迎。 Node.js 让我们可以轻松地使用 JavaScript 来编写服务器端应用,从而实现前后端一致的开发体验。在 Node.js 的发展历程中, TypeScript 也逐渐成为了一种备受欢迎的编程语言,它的出现大大提高了

    2024年02月10日
    浏览(66)
  • docker-compose 调整JVM参数

    服务器配置比较低,导致部署在docker里的微服务占用内存太大部分本奎,就想调整下jvm参数优化下,又网上很多调整JVM参数的方法不能用或者调整后不生效,参考多篇文章后总结一个方法。 推荐 使用解决方式2 1、 docker-compose.yml 里加上environment的配置,如下: 2、执行 启动之

    2023年04月18日
    浏览(34)
  • docker-compose:Dockerfile参数以及说明

    选择基础镜像,docker当前要生成的镜像以哪个镜像为基础。 容器 构建时 需要运行的命令(区别于后面的 CMD ) 有两种格式: shell命令格式 exec 格式 容器启动之后 要运行的命令 注意 CMD 一个文件中只能有一条指令 Dockerfile 。如果您列出多个, CMD 则只有最后一个会生效。 三种格

    2024年01月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包