Docker Compose 简介、安装、初步体验

【Docker那些事】系列文章

docker 安装 与 卸载 centos
Dockerfile 文件结构、docker镜像构建过程详细介绍
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
构建Docker镜像指南,含实战案例
Docker 制作自定义化的Tomcat镜像
docker 安装 mysql 并映射数据库存放路径及配置文件
docker安装tomcat 映射配置文件、日志文件
docker安装nginx,配置nginx,并成功访问
docker安装redis并将配置文件和数据文件映射到外部
Docker 容器互联 --link 和 自定义网络
docker 完成 redis集群搭建
Docker Compose 简介、安装、初步体验

简介

前面我们构建 Docker镜像的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。

然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停。这样的效率之低,维护量之大可想而知。

为了方便管理,这样就有了Docker Compose。使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具

官方介绍:https://docs.docker.com/compose/

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.
Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.
Using Compose is basically a three-step process:
Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
Run docker compose up and the Docker compose command starts and runs your entire app. You can alternatively run docker-compose up using the docker-compose binary.

安装

官方文档:https://docs.docker.com/compose/install/

下载Docker Compose

# 国内下载可能很慢
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 国内推荐使用这个下载
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

在这里插入图片描述

赋予可执行权限

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

在这里插入图片描述

检测是否安装成功

docker-compose version

出现版本号信息,说明已经安装成功。

初步体验

官方文档:https://docs.docker.com/compose/gettingstarted/

利用官方文档中的例子进行初步体验Docker Compose。

创建一个composetest文件夹

mkdir composetest
cd composetest

在这里插入图片描述

创建一个app.py文件

vim app.py

输入以下内容

import time

import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

创建一个requirements.txt文件

vim requirements.txt

输入以下内容。此文件为python的依赖包列表

flask
redis

创建Dockerfile文件

vim Dockerfile

输入以下内容

# syntax=docker/dockerfile:1
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
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

创建一个docker-compose.yml文件

vim docker-compose.yml

输入以下内容

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

创建完后,composetest文件夹下会有如下四个文件

在这里插入图片描述

构建并运行

docker-compose up

到这里就已经启动成功
在这里插入图片描述
试一下访问,也是可以的。说明项目已经成功启动了。
在这里插入图片描述

小结

构建并运行一个Docker Compose需要以下四步:

  1. 准备好项目应用,如:app.py
  2. 构建docker镜像的Dockerfile文件
  3. 定义Docker Compose必要的docker-compose.yml文件,包括整个服务需要环境等
  4. 启动 Docker Compose项目,指令 docker-compose up
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鳄鱼儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值