zoukankan      html  css  js  c++  java
  • Docker 入门指南——部署常用服务示例

    MongoDB

    FROM centos:centos7
    MAINTAINER The CentOS Project <cloud-ops@centos.org>
    
    RUN yum -y update; yum clean all
    RUN yum -y install epel-release; yum clean all
    RUN yum -y install mongodb-server; yum clean all
    RUN mkdir -p /data/db
    
    EXPOSE 27017
    ENTRYPOINT ["/usr/bin/mongod"]
    

    参考:

    Redis

    FROM centos:centos7
    MAINTAINER The CentOS Project <cloud-ops@centos.org>
    
    LABEL io.k8s.description="Redis is an open source, in-memory data structure store, used as database, cache and message broker." 
          io.k8s.display-name="Redis 2.8.19-2.el7" 
          io.openshift.expose-services="6379:redis" 
          io.openshift.tags="database,redis,redis3"
    
    LABEL Name="centos/redis-28-centos7" 
          Version="2.8.19" 
          Release="2" 
          Architecture="x86_64"
    
    RUN yum -y --setopt=tsflags=nodocs update && 
        yum -y --setopt=tsflags=nodocs install epel-release && 
        yum -y --setopt=tsflags=nodocs install redis && 
        yum clean all
    
    COPY redis-master.conf /redis-master/redis.conf
    COPY redis-slave.conf /redis-slave/redis.conf
    COPY entrypoint /entrypoint
    RUN mkdir /redis-master-data && 
        chmod 755 /entrypoint /redis-master-data && 
        chown 997 /redis-master-data
    
    EXPOSE 6379
    
    # By default will run as random user on openshift and the redis user (997)
    # everywhere else
    USER 997
    
    CMD [ "/entrypoint" ]
    ENTRYPOINT [ "sh", "-c" ]
    

    参考:

    部署 Flask 应用

    当前目录是get-pip,目录结构如下:

    $ tree .
    .
    ├── app.py
    ├── Dockerfile
    ├── README.md
    └── requirements.txt
    

    app.py

    # coding:utf-8                                                                  
    from flask import request, Flask                                                
                                                                                    
    app = Flask(__name__)                                                           
                                                                                    
                                                                                    
    @app.route("/ip", methods=["GET"])                                              
    def get_my_ip():                                                                
        return request.remote_addr                                                  
                                                                                    
                                                                                    
    @app.route('/', methods=["GET"])                                                
    def hello_world():                                                              
        return 'Hello World! From IP: {}'.format(get_my_ip())                       
                                                                                    
                                                                                    
    if __name__ == '__main__':
        # 默认的端口就是 5000,你可以指定其他端口,例如 8081
        app.run(port=5000, host='0.0.0.0', debug=True)
    

    requirements.txt

    Flask
    requests
    

    Dockerfile

    FROM python:3.7
    LABEL maintainer="michael"
    ENV LANG C.UTF-8
    COPY . /app
    COPY ./.pip/pip.conf ~/.pip/pip.conf
    WORKDIR /app
    RUN pip install -r requirements.txt --proxy="http://127.0.0.1:3128"
    ENTRYPOINT ["python"]
    CMD ["app.py"]
    

    get-pip目录下,构建镜像:

    docker build -t registry.domain.com/michael/get-ip:latest .
    

    推送镜像:

    docker login -u micahel registry.domain.com
    docker push registry.domain.com/michael/get-ip:latest
    

    因为网络的原因,无法直接连接 pypi 官方源,所以,在 pip install 时,使用了 --proxy 参数来指定代理。

    Flask 参考

    Pip 代理

    参考

  • 相关阅读:
    PHP-FPM 重启
    white-space: nowrap
    php-fpm 优化
    & 引用传值
    tp3 save操作小bug误区
    用百度接口验证是否上传了身份证图片信息[非姓名,身份证号匹配]
    nginx 反向代理案例
    IOS把图片缓存到本地的几种方法
    ios沙盒查找图片展示
    iOS模拟器沙盒使用推荐
  • 原文地址:https://www.cnblogs.com/michael-xiang/p/10467387.html
Copyright © 2011-2022 走看看