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-pip
,python-dev
,libffi-dev
,openssl-dev
,gcc
,libc-dev
, andmake
.
# 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
来源:oschina
链接:https://my.oschina.net/u/4375980/blog/4809997