本文共 2404 字,大约阅读时间需要 8 分钟。
Docker Compose 是 Docker 容器化应用的高级工具。它通过 YAML 文件定义和运行包含多个容器的 Docker 应用。通过 docker-compose up 命令,可以一次启动配置好的所有服务,无需手动拉取镜像或配置网络。
Dockerfile 定义镜像。docker-compose.yml 定义服务(包括容器、网络等)。docker-compose up 命令启动所有服务。建议使用 pip安装,因为步骤简单且稳定:
sudo pip install docker-composesudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose
这样安装后,运行以下命令查看版本:
docker-compose --version
tmp/test-compose。app.py:import timeimport redisfrom flask import Flaskapp = 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 文件:flaskredis
FROM python:3.7-alpineWORKDIR /codeENV FLASK_APP app.pyENV FLASK_RUN_HOST 0.0.0.0RUN apt-get update && \ apt-get install -y --no-install-recommends gcc musl-dev linux-headers && \ rm -y --force-depends gcc musl-dev linux-headersCOPY requirements.txt requirements.txtRUN pip install -r requirements.txtCOPY . .CMD ["flask", "run"]
version: '3'services: web: build: . ports: - "5000:5000" networks: - app-net redis: image: redis:alpine networks: - app-net app-net: driver: bridge
docker-compose up -d
命令解释:
docker-compose 启动所有服务,使用 -d 后台运行。访问服务后可通过 http://localhost:5000 查看效果。
docker-compose --version
docker-compose up
docker-compose up -d
docker-compose ps
docker-compose images
docker-compose stop
docker-compose down
docker-compose up --scale web=5 -d
docker-compose logs [service_name]
ports: - "80:80"
volumes: - ./cache:/tmp/cache
docker-compose pull
docker-compose build
docker-compose down --remove-orphans
通过以上命令,可以轻松管理和扩容你的 Docker 应用,提高开发效率。
转载地址:http://wiooz.baihongyu.com/