Docker-compose
介绍
Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动、关闭这些容器。
核心组成
1、一文件
docker-compose.yml
2、两要素
- 服务(service)
一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器。 - 工程(project)
由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。
上线步聚
- 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
- 使用docker-compose.yml定义一个完整业务单元,安排好整体应用中的各个容器服务
- 最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线
常用命令
docker-compose -h #查看帮助
docker-compose up #启动所有docker-compose服务
docker-compose up -d #启动所有docker-compose服务并后台运行
docker-compose down #停止并删除容器、网络、卷、镜像。
docker-compose logs #查看服务日志
docker-compose logs -f #查看服务日志(实时输出)
docker-compose logs <service_name> #查看服务日志(指定服务)
docker-compose restart #重启服务
docker-compose restart <service_name> #重启指定服务
docker-compose exec <service_name> /bin/sh #进入正在运行的容器
docker-compose config #查看服务详情
dokcer-compose config -q #检查配置,有问题才有输出
docker-compose pause #暂停服务中的所有容器
docker-compose unpause #恢复之前暂停的服务
docker-compose kill #杀死服务中的所有容器
docker-compose pull #拉取服务依赖的镜像
docker-compose build --no-cache #构建服务(不使用缓存)
docker-compose build #构建或重建服务
[root@host script]# cat zabbix-docker.yml
version: '3'
networks:
zabbix-net:
external: true
services:
mysql:
image: mysql:8.0
container_name: mysql-server-5.2.6
security_opt:
- seccomp:unconfined
restart: always
command:
--character-set-server=utf8
--collation-server=utf8_bin
--default-authentication-plugin=mysql_native_password
--binlog_expire_logs_seconds=604800
--log_error=error.log
--slow_query_log=1
--slow_query_log_file=slow.log
--log_queries_not_using_indexes=1
--log_slow_admin_statements=1
--log_slow_slave_statements=1
--log_throttle_queries_not_using_indexes=10
--long_query_time=2
--min_examined_row_limit=100
networks:
- zabbix-net
ports:
- '30006:3306'
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: xxx
volumes:
- /data/zabbix_data/mysql:/var/lib/mysql
labels:
service: zabbix-mysql
logging:
options:
labels: "service"
java-gateway:
image: hub.docker.com/zabbix/zabbix-java-5.2.6:v1
container_name: zabbix-java-5.2.6
restart: always
networks:
- zabbix-net
depends_on:
- mysql
zabbix-server:
image: hub.docker.com/zabbix/zabbix-server-5.2.6:v1
container_name: zabbix-server-5.2.6
environment:
DB_SERVER_HOST: mysql-server-5.2.6
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: xxx
ZBX_JAVAGATEWAY: zabbix-java-5.2.6
ZBX_VMWARECACHESIZE: 1G
ZBX_CACHESIZE: 2G
ports:
- '10051:10051'
networks:
- zabbix-net
volumes:
- /etc/localtime:/etc/localtime:ro
depends_on:
- mysql
- java-gateway
labels:
service: zabbix-server
logging:
options:
labels: "service"
zabbix-web:
image: hub.docker.com/zabbix/zabbix-web-5.2.6:v9.2
container_name: zabbix-web-5.2.6
restart: always
environment:
DB_SERVER_HOST: mysql-server-5.2.6
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_ROOT_PASSWORD: xxx
ZBX_SERVER_HOST: zabbix-server-5.2.6
PHP_TZ: Asia/Shanghai
networks:
- zabbix-net
ports:
# - ${WPORT}:8080
- '1234:8080'
volumes:
- /data/zabbix_data/web:/usr/share/zabbix
- /data/zabbix_data/zabbix-web:/etc/zabbix/web
depends_on:
- mysql
- java-gateway
- zabbix-server
labels:
service: zabbix-web
logging:
options:
labels: "service"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!