当前位置: 首页 > news >正文

docker compose基本使用以及示例

一、docker-compose模板文件

字段含义
build指定Dockerfile所在的文件夹路径
image指定为镜像名称或镜像ID
container_name指定容器模式
depends_on指定多个服务之间的依赖关系
ports端口映射
command覆盖容器启动后默认执行的命令
entrypoint覆盖容器中默认的入口命令
env_file从文件中获取环境变量
environment设置环境变量
expose暴露端口,但不映射到宿主机
restart指定重启策略
healthcheck指定检测应用健康状态的机制
volumes数据卷所挂载路径设置
extends基于其他模板文件进行扩展
networks所加入的网络
ulimits指定容器的ulimits限制值

二、docker compose常用命令

命令含义
docker compose up启动所有服务(-d 后台运行)
docker compose down停止并删除容器(-v 同时删除数据卷)
docker compose config校验和查看compose文件的配置信息
docker compose exec在一个运行中的容器内执行给定命令
docker compose logs查看服务容器的输出
docker compose pause暂停一个服务容器
docker compose restart重启项目中的服务
docker compose ps列出项目中目前的所有容器
docker compose top显示服务栈中正在运行的服务

三、docker-compose示例

部署discuz论坛和wordpress博客,使用adminer管理数据库。

1、编写docker-compose.yml:

[root@openEuler-4 ~]# mkdir discuz_wordpress && cd discuz_wordpress
[root@openEuler-4 discuz_wordpress]# vim docker-compose.yml
name: discuz_wordpress
services:adminer:container_name: adminerdepends_on:db:condition: service_startedrequired: trueimage: adminernetworks:mynetwork:ipv4_address: 172.18.0.15ports:- mode: ingresstarget: 8080published: "8080"protocol: tcprestart: alwaysdb:command:- --character-set-server=utf8- --collation-server=utf8_general_cicontainer_name: mysql57environment:MYSQL_DATABASE: wordpressMYSQL_PASSWORD: wordpressMYSQL_ROOT_PASSWORD: "123456"MYSQL_USER: wordpressimage: mysql:5.7networks:mynetwork:ipv4_address: 172.18.0.10restart: unless-stoppedvolumes:- type: volumesource: db_datatarget: /var/lib/mysqlvolume: {}discuz:container_name: discuzdepends_on:db:condition: service_startedrequired: trueenvironment:DISCUZ_DB_HOST: db:3306image: tencentci/discuznetworks:mynetwork:ipv4_address: 172.18.0.12ports:- mode: ingresstarget: 80published: "80"protocol: tcprestart: unless-stoppedvolumes:- type: volumesource: discuz_datatarget: /var/www/htmlvolume: {}wordpress:container_name: wordpressdepends_on:db:condition: service_startedrequired: trueenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_NAME: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_USER: wordpressimage: wordpress:latestnetworks:mynetwork:ipv4_address: 172.18.0.11ports:- mode: ingresstarget: 80published: "8001"protocol: tcprestart: unless-stoppedvolumes:- type: volumesource: wp_datatarget: /var/www/htmlvolume: {}
networks:mynetwork:name: discuz_wordpress_mynetworkdriver: bridgeipam:driver: defaultconfig:- subnet: 172.18.0.0/24gateway: 172.18.0.1
volumes:db_data:name: discuz_wordpress_db_datadiscuz_data:name: discuz_wordpress_discuz_datawp_data:name: discuz_wordpress_wp_data

2、启动服务:

[root@openEuler-4 discuz_wordpress]# docker compose up -d
[root@openEuler-4 discuz_wordpress]# docker compose ps
NAME        IMAGE              COMMAND                  SERVICE     CREATED          STATUS          PORTS
adminer     adminer            "entrypoint.sh docke…"   adminer     15 seconds ago   Up 12 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
discuz      tencentci/discuz   "docker-php-entrypoi…"   discuz      15 seconds ago   Up 13 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp
mysql57     mysql:5.7          "docker-entrypoint.s…"   db          15 seconds ago   Up 14 seconds   3306/tcp, 33060/tcp
wordpress   wordpress:latest   "docker-entrypoint.s…"   wordpress   15 seconds ago   Up 13 seconds   0.0.0.0:8001->80/tcp, :::8001->80/tcp

3、测试

输入http://IP:80访问discuz:

输入http://IP:8001访问wordpress:

输入http://IP:8080访问adminer:

http://www.lqws.cn/news/567127.html

相关文章:

  • 基于springboot+vue的数字科技风险报告管理系统
  • URL带有中文会引入哪些问题
  • http相关网络问题面试怎么答
  • 算法-基础算法-递归算法(Python)
  • 第十二节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 两种权限控制方式(附前后端代码)
  • Vue 3 Teleport 特性
  • DXYZ投资-ai公司
  • 左神算法之Zigzag方式打印矩阵
  • Java面试题031:一文深入了解MySQL(3)
  • Vivado关联Vscode
  • Rust标量、复合类型与自定义类型、第三方并发结构
  • 【软考--软件设计师】2025-05 我的选择题错题总结
  • ListExtension 扩展方法增加 转DataTable()方法
  • 商业行业项目创业计划书PPT模版
  • 什么是区块链的跨链操作?
  • 穿越时空的光
  • 详解快速排序
  • SRS流媒体服务器(8)源码分析之rtc/rtmp互相转码详解
  • 数据可视化 - 单子图
  • 第10章 数组和指针
  • 左神算法之螺旋打印
  • SQL Server从入门到项目实践(超值版)读书笔记 19
  • 从GPTs到Real智能体:目前常见的几种创建智能体方式
  • spring:BeanPostProcessor后置处理器介绍
  • 小米路由器 AX3000T自定义子网掩码
  • Mybatis多条件查询设置参数的三种方法
  • stm32hal模块驱动(1)hpdl1414驱动
  • Vue的watch函数实现
  • 华为云 Flexus+DeepSeek 征文|华为云 Flexus 云服务 Dify-LLM 平台深度部署指南:从基础搭建到高可用实践
  • 智能制造——解读西门子数字化工厂规划报告(三年实施计划)【附全文阅读】