运维实战 容器部分 Docker Compose

本文介绍了Docker Compose在管理复杂应用中的作用,通过Docker-compose.yml文件配置多容器应用,并列举了服务(service)和项目(project)的概念。示例展示了如何编写Docker-compose.yml文件,包括指定镜像、构建命令、链接服务、端口映射和卷挂载等关键属性。同时,提到了运行和使用Docker Compose的常用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运维实战 容器部分 Docker Compose

简介

一套服务架构很多时候不可能只包括一个应用, 通常包括若干个微服务, 每个微服务又可能需要部署多个实例.

每次进行业务部署都手动操作每个实例显然是不人性化且低效的.

Docker Compose就是为了解决这个问题而出现的.

作为用Python语言编写的一种编排服务, 它可以用于在Docker上运行复杂应用的工具, 批量化的管理应用.

通过编写配置文件, 用户可以定义一个多容器应用并使用一条指令对其进行安装和构建.

Docker Compose 中有两个重要的概念

  • 服务 (service) 一个应用的容器, 实际上可以包括若干运行相同镜像的容器实例.
  • 项目 (project) 由一组关联的应用容器组成的一个完整业务单元, 在 docker-compose.yml文件中定义.

image-20210505231236183

实践

##官方方式
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

##下载阿里云提供的方式
https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/
##之后与上文相同

Docker-compose.yml

文件中可能出现以下内容,分别对应不同的需求属性

  • Image指定为镜像名称或镜像 ID,如果镜像在本地不存在, Compose 将会尝试拉取这个镜像.

  • Build指定 Dockerfile 所在文件夹的路径. Compose 将会利用它自动构建这个镜像, 然后使用这个镜像.

  • Command覆盖容器启动后默认执行的命令.

  • Links链接到其它服务中的容器.

  • Ports端口映射.

  • Expose:暴露端口信息.

  • Volumes卷挂载路径设置.

更多属性查阅

举例

WebServer1:
  image: nginx
  volumes:
    - ./WebServer1:/usr/share/nginx/html
    
WebServer2:
  image: nginx
  volumes:
    - ./WebServer2:/usr/share/nginx/html
    
haproxy:
  image: haproxy
  volumes:
    - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
  links:
    - WebServer1
    - WebServer2
  ports:
    - "80:80"
  expose:
    - 80
  • 之后运行即可, 需要注意的是docker-compose命令必须在项目下运行, 也就是当前目录必须要有docker-compose.yml

常用命令

build		构建或重新构建服务
kill		强制停止服务容器
logs		查看服务的输出
port		打印绑定的公共端口
ps			列出所有容器
pull		拉取服务所需镜像
rm			删除停止的服务容器
up			构建并启动容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值