• Docker Compose


    用于管理一组容器的, 添加 删除 修改等等。

    该工具  通过yml 文件定义多容器的docker应用。

    https://docs.docker.com/compose/install/      linux 下载安装在这里

    依然还是 flask-hello-word 这个文件夹

    [miller@docker4 py-flask-redis]$ ls
    app.py  docker-compose.yml  Dockerfile
    
    [miller@docker4 py-flask-redis]$ cat app.py 
    from flask import Flask
    import redis
    import os
    
    host = os.environ.get("REDIS_HOST", "redis")  # REDIS_HOST  这个参数是 docker build 时 -e 参数传进来的系统环境变量。
    redis_conn = redis.Redis(host=host, port="6379") app = Flask(__name__) @app.route("/") def web_test(): res = redis_conn.incr("range_key") return "这是我第 %s 次调用, incr 方法。" % res if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)
    [miller@docker4 py
    -flask-redis]$ cat docker-compose.yml # yml 的格式要求特别严格, 一定要加空格 version: '3' services: redis: # 创建容器 名字叫 redis 这个名字最后会被 docker-compose 组合到最终的名字中 image: 'redis:latest' # 使用的是这个image。 我下载下来了 web: # 创建容器 名字叫 web build: # 这个荣去需要 执行build命令构建! context: '.' # 这个就是路径, docker build xxxxxx . 最后的这个 . 就是要发送给 docker服务端要进行构建的文件目录。 . 就是当前目录 dockerfile: 'Dockerfile' # 构建时使用到的 Dockerfile 的名字。 默认都是Dockerfile ports: # 这个就是 docker build 时,使用到的 -p 参数 - '8800:5000' environment: # 这个是 -e 参数 REDIS_HOST: 'redis'

    [miller@docker4 py-flask-redis]$ cat Dockerfile FROM python:3.7.7 LABEL maintainer="5913114@qq.com" COPY app.py /app/ RUN pip install flask redis WORKDIR /app EXPOSE 5000 CMD ["python3", "app.py"]

    [miller@docker4 py-flask-redis]$ docker-compose -f docker-compose.yml up -d  # -d 后台执行
    Creating network "py-flask-redis_default" with the default driver
    Creating py-flask-redis_redis_1 ... done
    Creating py-flask-redis_web_1 ... done

    我这虚拟主机的 ip是  192.168.42.22

    访问 192.168.42.22:8800  就可以访问这个页面。

    [miller@docker4 py-flask-redis]$ docker-compose ps
             Name                       Command               State           Ports         
    ----------------------------------------------------------------------------------------
    py-flask-redis_redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp              
    py-flask-redis_web_1     python3 app.py                   Up      0.0.0.0:8800->5000/tcp
    [miller@docker4 py
    -flask-redis]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c7ca7919c352 py-flask-redis_web "python3 app.py" About a minute ago Up About a minute 0.0.0.0:8800->5000/tcp py-flask-redis_web_1 39edcde9b3b2 redis:latest "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp py-flask-redis_redis_1

    # docker-compose 起名字的时候,  会将 docker-compose up 时的 目录和一个数字  组合进去。

    py-flask-redis   _redis_                    1  

           目录名               在yml文件中自己设置的名字    这个数组应该是, 当前构建的第几次。  删除后又会从1开始

    这就是 基于Compose 的简单的, 容器编排。  但是Compose只是 适用于单机的。  更多情况下时 集群的。
    学习  k8s 吧。 时间宝贵。

  • 相关阅读:
    ES6 语法
    使用过滤器进行跨域
    java读取资源文件(Properties)
    跨域
    java提取(获取)博客信息(内容)
    SSM命名规范框架
    学校管理系统设计java(数据库、源码、演讲内容、ppt等)
    学校管理系统C#(数据库、源码、演讲内容、ppt等)
    vue快速使用
    故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序
  • 原文地址:https://www.cnblogs.com/chengege/p/12685878.html
Copyright © 2020-2023  润新知