1、下载二进制包
# sudo curl -L "https://get.daocloud.io/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
2、创建测试目录
# mkdir -p /www/docker-compose-test
2.1 在docker-compose-test目录中创建一个名为 app.py 的文件,并复制粘贴以下内容:
# vim /www/docker-compose-test/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)
在此示例中,redis 是应用程序网络上的 redis 容器的主机名,该主机使用的端口为 6379
2.2 在 docker-compose-test 目录中创建另一个名为 requirements.txt 的文件,内容如下:
# vim /www/docker-compose-test/requirements.txt
flask
redis
2.3 在 docker-compose-test 目录中,创建一个名为 Dockerfile 的文件,内容如下:
# vim /www/docker-compose-test/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"]
2.4 在docker-compose-test 目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:
# vim /www/docker-compose-test/docker-compose.yml
version: '3.5'
services:
tomcat_84:
restart: always
image: "tomcat:8-jdk8-openjdk"
container_name: "my_tomcat_84"
ports:
- "8084:8080"
volumes:
- /etc/localtime:/etc/localtime:ro
- /www/docker-tomcat/webapps:/usr/local/tomcat/webapps
environment:
TZ: "Asia/Shanghai"
tomcat_85:
restart: always
image: "tomcat:8-jdk8-openjdk"
container_name: "my_tomcat_85"
ports:
- "8085:8080"
volumes:
- /etc/localtime:/etc/localtime:ro
- /www/docker-tomcat/webapps:/usr/local/tomcat/webapps
environment:
TZ: "Asia/Shanghai"
3、使用 Compose命令构建和运行应用
# docker-compose up
如果想在后台执行改服务可以加上 -d 参数
# docker-compose up -d
4、查看运行的容器
# docker ps