云计算核心技术Docker教程: Compose使用

发布时间:2023-11-14 点击:152
compose 是用于定义和运行多容器 docker 应用程序的工具。通过 compose,您可以使用 yml 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 yml 文件配置中创建并启动所有服务。
compose 使用的三个步骤:
1.使用 dockerfile 定义应用程序的环境。
2.使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
3.最后,执行 docker-compose up 命令来启动并运行整个应用程序。
运行以下命令以下载 docker compose 的当前稳定版本:
$ sudo curl -l https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
$ sudo chmod x /usr/local/bin/docker-compose
创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
$ docker-compose –version
cker-compose version 1.24.1, build 4667896b
使用示例:
创建一个测试目录:命令如下
$ mkdir composetest
$ cd composetest
在测试目录中创建一个名为 app.py 的文件,该文件redis 是应用程序网络上的 redis 容器的主机名,该主机使用的端口为 6379。
在 composetest 目录中创建另一个名为 requirements.txt 的文件,内容如下:
flask
redis
在 composetest 目录中,创建一个名为的文件 dockerfile,内容如下:
from python:3.7-alpine
workdir /code
env flask_app app.py
env flask_run_host 0.0.0.0
run apk add –no-cache gcc musl-dev linux-headers
copy requirements.txt requirements.txt
run pip install -r requirements.txt
copy . .
cmd [flask, run]
dockerfile 内容解释:
from python:3.7-alpine: 从 python 3.7 映像开始构建镜像。
workdir /code: 将工作目录设置为 /code。
env flask_app app.py
env flask_run_host 0.0.0.0
设置 flask 命令使用的环境变量。
run apk add –no-cache gcc musl-dev linux-headers: 安装 gcc,以便诸如 markupsafe 和 sqlalchemy 之类的 python 包可以编译加速。
copy requirements.txt requirements.txt
run pip install -r requirements.txt
复制 requirements.txt 并安装 python 依赖项。
copy . .: 将 . 项目中的当前目录复制到 . 镜像中的工作目录。
cmd [flask, run]: 容器提供默认的执行命令为:flask run。
在测试目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:
# yaml 配置
version: \\\’3\\\’
services:
web:
build: .
ports:
– 5000:5000
redis:
image: redis:alpine
该 compose 文件定义了两个服务:web 和 redis。
web:该 web 服务使用从 dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 flask web 服务器的默认端口 5000 。
redis:该 redis 服务使用 docker hub 的公共 redis 映像。
在测试目录中,执行以下命令来启动应用程序:
# docker-compose up
如果你想在后台执行该服务可以加上 -d 参数:
# docker-compose up -d
相关阅读:
云计算核心技术docker教程: dockerfile指令详解

你们机房逗我玩呢三天两头
刚购买的域名需要实名认证么?现在注册域名要怎么实名?
怎样的域名价值高?如何注册有价值的域名?
VM VirtualBox 虚拟机挂载共享文件夹
.net域名是怎么备案的
虚拟主机哪家性价比高
电脑中安装DeskScapes软件的方法
如何正确处理网站建设产生的死链