您的位置:首页 > 健康 > 养生 > 十大免费视频素材网站_it从零开始学大概要学多久_东莞网络推广招聘_营销策划方案案例

十大免费视频素材网站_it从零开始学大概要学多久_东莞网络推广招聘_营销策划方案案例

2025/3/29 15:59:41 来源:https://blog.csdn.net/tianmlin1/article/details/146502330  浏览:    关键词:十大免费视频素材网站_it从零开始学大概要学多久_东莞网络推广招聘_营销策划方案案例
十大免费视频素材网站_it从零开始学大概要学多久_东莞网络推广招聘_营销策划方案案例

基本概念

Docker-Compose是Docker官方的开源项目,负责实现对docker容器集群的快速编排。

可以这么理解,docker compose是docker提出的一个工具软件,可以管理多个docker容器组成一个应用,只需要编写一个YAML格式的配置文件docker-compose.yml,这个配置文件中定义好多个容器之间的调用关系。接着,皆可以通过docker compose相关的命令来一起管理这些容器。

docker-compose的优势有如下几点

  • 通过声明式YAML文件统一管理所有的服务、网络、数据卷
  • 支持一键启动、停止整个应用栈
  • 内置服务依赖顺序控制(通过depends_on)

高阶功能

Docker-Compose常见的高阶功能如下

环境变量注入

services:db:image: mysql:8.0environment:MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}

通过系统变量来管理密码

资源限制

services:worker:deploy:resources:limits:cpus: '0.5'memory: 512M

通过配置可以限制容器使用cpu、内存等资源 
 

健康检查

services:web:healthcheck:test: ["CMD", "curl", "-f", "http://localhost"]interval: 30stimeout: 10sretries: 3

web等应用容器可以通过执行curl等命令来检测服务的健康心跳 

安装流程

使用官方推荐的安装方式,不过在安装之前需要先安装docker引擎并启动docker。

一键安装脚本如下

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
docker-compose --version

常见的命令

命令作用示例

docker compose up

启动所有服务

#以后台方式启动所有的service

docker compose up -d

#以后台方式启动指定服务

docker compose up -d web

docker compose down

停止并删除所有容器、网络、数据卷

docker compose exec

进入容器执行命令

docker compose exec redis sh

docker compose config

验证 docker-compose.yml 语法

其他命令,还可以通过docker compose --help 来自助查看 

案例

这里来使用docker compose来安装一个nginx的容器,操作步骤如下

创建目录

创建如下层级的目录,nginx.conf是nginx的配置文件

html/index.html是一个简单的html静态资源文件

├── docker-compose.yml

├── nginx

│   ├── conf.d

│   │   └── nginx.conf

│   ├── html

│   │   └── index.html

│   └── logs

│   ├── access.log

│   └── error.log

└── redis

配置文件编写

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;keepalive_timeout  65;# 包含子配置(若需拆分配置)include /etc/nginx/conf.d/*.conf;
}

编写docker compose的YAML文件

services:nginx:image: nginx:1.25-alpinecontainer_name: my_nginxports:- "80:80"volumes:- ./nginx/html:/usr/share/nginx/html              # 静态文件- ./nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf    # 主配置文件- ./nginx/logs:/var/log/nginx                     # 挂载日志目录restart: unless-stoppedlogging:  # 可选:限制日志大小(防止磁盘占满)driver: "json-file"options:max-size: "10m"max-file: "3"

编写一个简单的html页面

<h1>Hello Docker Compose + Nginx!</h1>

检查yml文件格式

docker compose config

 检查格式没问题以后,运行docker compose配置文件

运行

docker compose up -d

运行成功后,可以在浏览器访问静态资源,能正常显示index.html内容说明nginx运行正常

总结

docker compose可以非常灵活的来管理docker容器,上手又简单,值得学!

通过docker compose运行起来的容器,使用的是自定义的docker网络,默认也是桥接模式,同一个service下的docker容器是在一个网段内,可以直接使用服务名来进行通信。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com