目录
docker compose是什么?
官网网站:Docker Compose overview | Docker Documentation
安装使用compose:
步骤:
1、下载并安装compose的命令行插件
2、安装完成后授予权限,测试compose是否可以使用
3、实例测试(python flase镜像创建)
1、创建目录composetest
2、创建app.py文件
3、创建requirements.txt
4、创建Dockerfile
5、创建 docker-compose.yml
6、重新启动docker,刷新docker服务(可做可不做,可以防止8000端口被占用)
7、编译并运行compose
实例二:Mysql镜像compose
实例网站:WordPress samples | Docker Documentation
docker compose是什么?
compose是一个容器编排工具:
启动一个容器,进行哪些配置:配置哪个端口,启动哪个进程,使用哪个卷,是否链接其他的容器等,同时可以启动多个容器等
使用 Docker Compose,可以使用 YAML 文件来定义多个容器、服务、网络等相关配置信息,然后通过一条命令启动、停止、重建整个应用程序。
使用compose就像是使用脚本去操作容器,批量完成对容器的操作 --》docker 里的脚本操作
官网网站:Docker Compose overview | Docker Documentation
docker compose会读取yaml文件的配置,批量的去启动容器
安装使用compose:
步骤:
1、下载并安装compose的命令行插件
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
因为我们是通过github下载的,因此国内可能需要翻墙,并且还会限速,下载需要一段时间
2、安装完成后授予权限,测试compose是否可以使用
3、实例测试(python flase镜像创建)
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)
官网实例:Try Docker Compose | Docker Documentation
1、创建目录composetest
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
# 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"]
5、创建 docker-compose.yml
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
6、重新启动docker,刷新docker服务(可做可不做,可以防止8000端口被占用)
service docker restart
7、编译并运行compose
docker compose up
完成后就会帮我们自动创建docker镜像并起容器了,到时候我们只需要访问8000端口即可完成该项目