前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker】专题四:Docker Compose 相关

【Docker】专题四:Docker Compose 相关

作者头像
行者Sun
发布2024-09-02 12:27:02
740
发布2024-09-02 12:27:02
举报
文章被收录于专栏:Docker

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

相关概念

1、Docker Compose

Docker Compose 是 Docker 官方的编排项目之一,用于定义和运行多个容器,可以简化多容器应用程序的部署和管理,与 Docker Machine、Docker Swarm 并称 Docker “三驾马车”。

开发人员或运维人员通过 Docker Compose,可以使用 YML 文件来定义应用程序需要的所有服务。

2、YML 文件

一种 YAML 格式的模板文件,用于将一组相关联的应用容器定义为一个项目,Docker Compose 默认的 YML 文件是 docker-compose.yml。

Docker Compose

1、安装方法

代码语言:javascript
复制
# 使用前提:已经安装 Docker
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.23.1/docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
docker-compose -v

2、常用选项及常用命令

代码语言:javascript
复制
# 常用选项
--verbose                      # 输出详细信息
--log-level LEVEL              # 日志级别(DEBUG, INFO, WARNING, ERROR, CRITICA)
--compatibility                # 限制资源
-d                             # 在后台运行
-f                             # 指定 yml 文件
--no-deps                      # 不启动依赖的容器
--no-recreate                  # 如果容器已经存在了则不重新创建
--force-recreate               # 强制重建容器,不能与 --no-recreate 同时使用
--no-build                     # 不构建缺失的镜像
--no-color                     # 不使用颜色区分输出
-t,-—timeout                   # 停止容器的超时时间(默认为10秒)
 
 
 
# 常用命令
docker-compose ps                             # 查看容器列表
docker-compose up   <服务名称>                 # 启动服务容器,如果没有则创建
docker-compose stop <服务名称>                 # 停止服务容器
docker-compose down <服务名称>                 # 停止并删除服务容器
docker-compose pull <服务名称>                 # 拉取容器镜像
docker-compose top  <服务名称>                 # 查看服务进程
docker-compose restart <服务名称>              # 重启服务容器
docker-compose exec <服务名称> bash            # 进入服务容器
 
 
# 命令示例
# 启动指定 YML 文件定义的一组服务,并在后台运行
docker-compose -f demo.yml up -d
 
# 停止默认 YML 文件定义的全部服务
docker-compose stop
 
# 启动指定 YML 文件定义的 web 服务,并让其资源限制生效
docker-compose --compatibility -f demo.yml up web

YML 文件样例及解析

代码语言:javascript
复制
version: '3'
 
services:
  <服务名称>:
    container_name:  <容器名称>
    restart: always 或 unless-stopped      # 重启策略
    network_mode: host      # 配置端口映射时需要注释此行,或改为对应的 network 名称
    image: nginx
    env_file:               # 从文件中添加环境变量,可以是一个值或列表(优先级从低到高!!!)
    - env_public
    - env_private
    environment:
    - TZ=Asia/Shanghai
    privileged: true        # 特权模式
    cap_add:                # 添加容器的内核能力
    - ALL                   # 让容器拥有所有能力
    - SYS_PTRACE
    cap_drop:
    - SYS_ADMIN             # 移除 SYS_ADMIN 功能
    volumes:
    - 主机目录:容器目录
    ports:
    - "主机端口:容器端口"
    depends_on:             # 依赖的服务
    - web
    extra_hosts:            # 在容器的 /etc/hosts 文件中添加host信息
    - "域名:IP"
    command: "/usr/local/bin/docker-entrypoint.sh"  # 覆盖容器启动后默认执行的命令
    deploy:                 # 启动时需要添加 --compatibility 参数
      resources:
        limits:
          cpus: '1'          # 需要加单引号 '',类型是字符串 string
          memory: 2048M
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 实施运维知识交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档