zoukankan      html  css  js  c++  java
  • docker-compose -----单机多容器管理

    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. '.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  --日志
    复制代码
  • 相关阅读:
    ST3 插件和技巧
    博客园中 代码使用 sublime-text 的主题
    JavaScript中的 prototype 和 constructor
    JavaScript 代码小片段
    JavaScript 静态方法和实例方法
    JavaScript 闭包的例子
    关于linux 交叉编译器的安装
    scrapy 实现mysql 数据保存
    django 实现 内网访问 和 用花生壳进行内网穿透
    django 中从外界借助多个网站时 static 的存放和整理
  • 原文地址:https://www.cnblogs.com/flgb/p/12184982.html
Copyright © 2011-2022 走看看