当前位置: 首页 > 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:

相关文章:

  • 云端可视化耦合电磁场:麦克斯韦方程组的应用-AI云计算数值分析和代码验证
  • 学习使用Visual Studio分析.net内存转储文件的基本用法
  • MybatisPlus-03.快速入门-常用注解
  • 横向移动01
  • leetcode437-路径总和III
  • FLOPS、FLOP/s、TOPS概念
  • 手机流量监控App(GlassWire)使用指南
  • 自学嵌入式 day27 进程
  • Java 大视界 -- 基于 Java 的大数据分布式存储在科研大数据归档与长期保存中的应用(328)
  • Web应用开发 --- Tips
  • Tomcat服务概述
  • C++基础(FreeRDP编译)
  • 如何用 Kafka Manager 实现 Kafka 集群全面监控
  • Java笔记
  • 非常有科技感的wpf GroupBox 控件
  • 详解WSL(Hyper)网络配置
  • MediaPipe框架解析(二):mediapipe helloworld
  • 进阶向:Django入门,从零开始构建一个Web应用
  • GAN的思考及应用
  • SCAU期末笔记 - 操作系统 英文定义题