千家信息网

Docker容器编排利器Compose怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关Docker容器编排利器Compose怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Compose简介Compose的前身是Fig
千家信息网最后更新 2026年11月03日Docker容器编排利器Compose怎么用

这篇文章将为大家详细讲解有关Docker容器编排利器Compose怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Compose简介

Compose的前身是Fig,Fig被Docker收购之后正式更名为Compose,Compose向下兼容Fig。Compose是一个用于定义和运行多容器Docker应用的工具,只需要一个Compose的配置文件和一个简单的命令就可以创建并运行应用所需的所有容器。在配置文件中,所有容器通过services来定义,并使用docker-compose命令启动或停止容器以及所有依赖容器。

安装Compose

Compose的安装方式有多种,这里推荐使用curl命令安装,在安装之前,要确保你的机器上已经安装了Docker,可以运行sudo docker version命令来确认是否已安装了Docker。截至目前,Compose的最新发布版为1.11.2,下面演示在一台已经安装好Docker的Linux主机上安装Compose。

安装很简单,只需要执行下面的命令即可:

sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

等待安装完毕后,执行下面的命令,为docker-compose添加可执行权限:

chmod +x /usr/local/bin/docker-compose

输入docker-compose --version命令可以查看安装结果。

除了这种安装方式之外,还可以通过Python的pip命令安装或将Compose安装成Docker容器,详情请参见https://docs.docker.com/compose/install/#install-as-a-container。

如果要卸载Compose,可以执行sudo rm /usr/local/bin/docker-compose命令。

Compose入门

下面我们通过一个简单的例子演示Compose的使用步骤,使用Python构建一个Web应用,该应用使用Flask框架,并在Redis中维护一个命中计数(即使你不熟悉Python也没有关系,你甚至不需要安装Python和Redis,我们会从容器中获取这些依赖环境)。

创建工程

首先需要一个文件夹作为项目文件夹:

mkdir composetestcd composetest

在项目文件夹下创建一个app.py的文件,并将下面的代码拷贝并粘贴到该文件中:

from flask import Flaskfrom redis import Redisapp = Flask(__name__)redis = Redis(host='redis', port=6379)@app.route('/')def hello():  count = redis.incr('hits')  return 'Hello World! I have been seen {} times.\n'.format(count)if __name__ == "__main__":  app.run(host="0.0.0.0", debug=True)

在项目文件夹下创建一个requirements.txt的文件,并将下面的代码拷贝并粘贴到该文件中:

flaskredis

到此,我们已经完成了新建项目,编码,添加依赖等工作。

创建Dockerfile

下面我们创建一个Dockerfile文件用于构建Docker镜像,该镜像包含了运行该Web应用的所有依赖,包括Python运行环境。

在项目文件夹下创建一个Dockerfile文件,并将下面的内容拷贝并粘贴到该文件中:

FROM python:3.4-alpineADD . /codeWORKDIR /codeRUN pip install -r requirements.txtCMD ["python", "app.py"]

大概解释一下这个配置文件:

  1. 使用python-3.4-alpine作为基础镜像

  2. 将当前目录添加到镜像中/code目录下

  3. 将/code设置为工作目录

  4. 安装Python依赖

  5. 设置默认执行命令

在Compose文件中定义services

在项目文件夹下创建一个docker-compose.yml文件,并将下面的内容拷贝并粘贴到该文件中:

version: '2'services: web:  build: .  ports:   - "5000:5000"  volumes:   - .:/code redis:  image: "redis:alpine"

该配置文件中包含两个services,即web和redis。web会使用当前目录中的Dockerfile文件构建镜像,并将容器的5000端口暴露给主机,然后将项目文件夹挂载到容器中的/code目录下;redis使用官方发布的镜像构建。

构建并运行

执行下面的命令构建并运行容器:

sudo docker-compose up

容器构建完成并启动后,可以在浏览器中输入http://localhost:5000查看结果。页面会打印"Hello World! I have been seen 1 times.",刷新页面后,计数会累加变成2。

更新应用

由于项目文件夹挂载到了容器中,所以我们可以直接修改项目文件夹的应用,修改的结果立即反应到容器中,而不用重新启动容器。将app.py文件中的hello方法中的返回值修改成如下:

return 'Hello from Docker! I have been seen {} times.\n'.format(count)

保存后刷新浏览器,发现打印结果已经更新。

Compose的其他命令

上面提到的Componse使用命令构建并启动容器,是以前台的方式启动的,如果希望以后台启动,可以添加参数-d,比如下面这样:

sudo docker-compose up -d

docker-compose ps命令可以查看正在运行的容器:

liuwei@liuwei-Ubuntu:~$ sudo docker-compose psName           Command        State      Ports-------------------------------------------------------------------------------------composetest_redis_1  docker-entrypoint.sh redis ...  Up   6379/tcpcomposetest_web_1   python app.py          Up   0.0.0.0:5000->5000/tcp

如果使用sudo docker-compose up -d命令以后台方式启动,可以用docker-compose stop命令停止。docker-compose down --volumes命令可以停止容器并将其删除, --volumns表示同时删除redis数据文件目录。

有关Compose的更多命令,可以通过sudo docker-compose --help查看。

以上就是Compose的一个基本使用过程,可以发现,Compose将docker run命令整合到了一个docker-compose.yml配置文件中,对于大型Docker集群的管理是很方便的,例可以将多个service组合成更复杂的service组,为每个service指定不同的Dockerfile,然后把它们link在一起。

关于"Docker容器编排利器Compose怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 容器 命令 文件夹 项目 运行 面的 应用 目录 镜像 并将 配置 拷贝 方式 结果 内容 更多 篇文章 利器 主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 云之行互联网科技 互联网科技工作委员会主任 苏州找大状互联网科技有限公司 科技互联网产品 科技平台互联网 科技创新与互联网经济 互联网与科技发展 互联网 卓越科技 互联网金融监管科技 互联网实体化科技化 中盈科技互联网信息有限公司 贵州叶脉互联网科技有限公司所属行业 佳云科技和互联网广告 千方科技属于互联网企业吗 区块链结合互联网科技 宇信科技在杭州互联网排第几 广州智享互联网科技 好易买互联网科技 互联网高科技绘画 中关村互联网 科技集团 滨湖区互联网智能科技产品供应 现代科技和互联网有关系吗 广州恒生互联网科技有限 深圳市优智互联网科技有限公司 开一家科技互联网公司需要多少钱 互联网科技如何创业 互联网硬科技公司 高科技和互联网的现代国家 利用互联网等科技手段
0