zoukankan      html  css  js  c++  java
  • 六:Docker生产案例

     

     

    一:自从2013年Docker诞生以来Docker就持续火热,也推动了相关技术生态的快速成长。企业的应用需求纷繁复杂,Docker不可能解决企业客户的所有需求,因此Docker相关技术层出不穷,进一步带动了Docker在企业的落地,丰富了Docker的生态圈,本文将站在企业的角度设计如何使用Docker:

    1.1:Dockerfile的规划:

    1.1.1:按照不同的功能将不同的Dockerfile分类保存,便于区分和保存,Dockerfile要定期做备份:

    [root@docker-server1 docker]# tree 
    .
    ├── app  #对应用进行分类
       ├── nginx-web
       └── tomcat-user
    ├── system #对系统进行分类
       ├── Centos
       ├── RHEL
       └── Ubuntu
    └── test #测试的镜像分类
        ├── test-nginx-web
        └── test-tomcat
    #对xx进行分类 
    。。。。。。。。。

    1.1.2:基础系统镜像的Dockerfile,安装好基础软件并设置密码:

    [root@docker-server1 centos]# pwd
    /opt/docker/system/centos
    
    #Docker For CentOS 7.2
    #Base images centos 7.2
    FROM centos
    
    #Author
    MAINTAINER ZhangJie
    
    #Yum Setting
    ADD epel.repo /etc/yum.repos.d/epel.repo
    ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
    
    #rpm install
    RUN yum install -y openssh-server openssh-clients  openssl openssl-devel vim wget net-tools mysql-dev mysql supervisor git redis tree sudo psmisc lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute  && yum clean all
    
    #For SSHD
    RUN ssh-keygen -t rsa -/etc/ssh/ssh_host_rsa_key
    RUN ssh-keygen -t ecdsa -f   /etc/ssh/ssh_host_ecdsa_key
    RUN echo "root:123456" | chpasswd

    1.1.3:构建基础系统镜像:

    [root@docker-server1 Centos]# pwd
    /opt/docker/system/Centos
    [root@docker-server1 Centos]# docker build -t  jack/ssh-centos .  #构建成一个安装好基础环境的基础镜像,后期即可通过此基础镜像构建不同的业务镜像

    1.2:基于上一步骤的基础镜像构建应用镜像,如还是nginx的:

    1.2.1:Dockerfile文件内容:

    [root@docker-server1 nginx-web]# pwd
    /opt/docker/app/nginx-web
    [root@docker-server1 nginx-web]# cat Dockerfile 
    from  jack/ssh-centos
    MAINTAINER Jack.Zhang 123456@qq.com
    run yum install nginx -y
    run echo "daemon off;" >> /etc/nginx/nginx.conf
    run echo "test nginx page" >  /usr/share/nginx/html/index.html
    expose 80 443
    cmd ["nginx"]

    1.2.2:执行构建镜像:

    [root@docker-server1 nginx-web]# pwd
    /opt/docker/app/nginx-web
    [root@docker-server1 nginx-web]# docker build -t  jack/nginx-base:v1 .  #构建成一个可以提供web服务的nginx镜像

    二:基于可以ssh的镜像构建可以访问web界面并可以ssh连接的镜像:

    2.1:编辑Dockerfile,

    [root@docker-server1 shop-api]# pwd
    /opt/docker/app/shop-api
    [root@docker-server1 shop-api]# cat Dockerfile 
    #Base image
    FROM jack/ssh-centos 
    
    #Maintainer
    MAINTAINER ZhangJie 
    
    # Add www user
    RUN useradd -s /sbin/nologin -M www
    
    #install pip
    RUN yum install -y python-devel python-pip supervisor 
    
    # Upgrade pip
    RUN pip install --upgrade pip
    
    # ADD file
    ADD app.py /opt/app.py
    ADD requirements.txt /opt/
    ADD supervisord.conf /etc/supervisord.conf
    ADD app-supervisor.ini /etc/supervisord.d/
    
    # pip
    RUN /usr/bin/pip2.7 install -r /opt/requirements.txt
    
    # Port
    EXPOSE 22 5000
    
    #CMD
    CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

    2.2:构建新镜像:

    [root@docker-server1 shop-api]# pwd
    /opt/docker/app/shop-api
    [root@docker-server1 shop-api]# docker build -t  jack/pythonweb-ssh-centos .

    2.3:从构建的镜像启动容器:

    [root@docker-server1 shop-api]# docker run --name web-ssh  -d -p  9901:5000 -p  9902:22  jack/pythonweb-ssh-centos
    14b4ef1d50ec2c16641692dbdb0d6962ec1495187456916206780f6055bfeb46

    2.4:测试访问web界面:

    2.5:测试是否可以ssh连接:

    2.6:打包文件:

    docker.tar

  • 相关阅读:
    一、【注解】Spring注解@ComponentScan
    一致性Hash算法
    垃圾回收器搭配和调优
    JVM的逃逸分析
    简单理解垃圾回收
    类加载机制和双亲委派模型
    VMWare15下安装CentOS7
    HBase协处理器(1)
    依赖注入的三种方式
    Javascript-设计模式_装饰者模式
  • 原文地址:https://www.cnblogs.com/dengbingbing/p/12325071.html
Copyright © 2011-2022 走看看