docker-compose -----单机多容器管理

Posted on 2020-01-12 22:09  FLGB  阅读(607)  评论(0编辑  收藏  举报

Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。

Docker-Compose 安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

测试安装:

$ docker-compose --version

  docker-compose version 1.25.0, build 0a186604

跟着官网的demo进行一个docker-compose的入门:

  确保已安装Docker Engine和Docker Compose。您无需安装Python或Redis,因为两者均由Docker映像提供。

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)
复制代码

  在此示例中,redis是应用程序网络上的redis容器的主机名。我们为Redis使用默认端口6379

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
COPY . .
CMD ["flask", "run"]
复制代码

5.新建 docker-compose.yml在项目目录中创建一个名为的文件,然后粘贴以下内容:

复制代码
version: '3' #表示docker-compose的版本
services:   #相当于原先的container ,一个service表示一个container
  web:      #container的名字
    build: .
    ports:
      - "5000:5000" #映射端口
    networks:
      - app-net     #网段
  redis:
    image: "redis:alpine"
    networks:
      - app-net

networks:    #相当于docker network create app-net
  app-net:
    driver: bridge
复制代码

  该Compose文件定义了两个服务:webredis

6.执行 docker-compose up 运行来启动应用程序

7.在浏览器中输入ip:5000 /以查看应用程序正在运行。您应该在浏览器中看到一条消息,内容为:

Hello World! I have been seen 1 times.

  docker-compose常见操作:

复制代码
docker-compose version   --查看版本

docker-compose up  --根据yml创建service
                             指定yaml:docker-compose  up -f xxx.yaml
                             后台运行:docker-compose up -d
docker-compose ps --查看启动成功的service ,也可以使用docker ps

docker-compose images   --查看images

docker-compose stop/start   --停止/启动service

docker-compose down  --删除service[同时会删除掉network和volume]

docker-compose exec redis sh  --进入到某个service
  docker-compose up --scale web=5 -d --若要对python容器进行扩缩容
  docker-compose logs web  --日志
复制代码

Copyright © 2024 FLGB
Powered by .NET 9.0 on Kubernetes