Docker Compose详解

一笑奈何 提交于 2020-12-16 13:55:21

1. 简介

Docker

DockerFile build run 手动操作,单个容器

微服务,100个微服务,依赖关系

Docker Compose来轻松管理容器,定义运行多个容器

官方简介

定义运行多个容器,需要一个yuml配置文件

使用Compose三步骤

1. 使用Dockerfile保证我们的项目可以在任何地方可以运行

2. 定义一个服务(应用)在docker-compose.yml,它可以运行在隔离的环境中

3. 使用docker-compose up命令来启动dockerCompose

作用:批量容器的管理

# yaml配置文件
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

2. 安装

1. 下载

# 1 需要的环境

py-pippython-devlibffi-devopenssl-devgcclibc-dev, and make.

# 2 下载相关compose版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 3 给docker compose可执行权限
sudo chmod +x /usr/local/bin/docker-compose

 # 如果第二步下载非常慢,可以使用备用地址,这里注意应该将docker和docker compose进行版本统一

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 

 

2. 体验

# 1. 为测试创建一个目录
$ mkdir composetest
$ cd composetest

# 2. 创建一个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)

# 3. 创建文件requirements.txt
flask
redis

# 4. 编写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
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

# 5. 编写docker-compose.yml文件
version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

# 6. 使用dockercompose打包和运行你的app
$ docker-compose up

 

本篇简单的dockercompose下载安装测试已完结 后续还有更多的技术学习分享,希望找到致同道和的it大神或者是励志通往大神的路的it打工人,一起鼓励学习,鼓励前进,以后我也会在抖音开直播学习,一起加油!!!

抖音号20200321kk

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!