zoukankan      html  css  js  c++  java
  • Dockerfile

    一,dockerfile指令

    二,Build镜像命令

    build  -t  #镜像名称
             -f   #指定Dockerfile文件位置
    
    示例:
    docker build .
    docker build -t  kk/myapp .
    docker build -t kk/myapp -f /path/Dockerfile /path

    三,构建PHP镜像

    $ mkdir php
    $ cd php/
    $ vi Dockerfile
    FROM  centos:7             #基础镜像
    
    MAINTAINER cong
    
    RUN yum install -y  gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel
    
    ADD php-5.6.31.tar.gz /tmp/   #ADD具有下载(url链接) 解压(压缩包) 拷贝功能,本地到镜像中的目录
    
    #如果这里些了user abc  下面的所有操作都会在这个命令下操作
    
    RUN cd /tmp/php-5.6.31 && 
            ./configure --prefix=/usr/local/php 
            --with-config-file-path=/usr/local/php/etc 
            --with-mysql --with-mysqli 
            --with-openssl --with-zlib  --with-curl --with-gd 
            --with-jpeg-dir --with-png-dir --with-iconv 
            --enable-fpm --enable-zip --enable-mbstring  && 
            make -j 4 && 
            make install && 
            cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf &&
            sed -i "s/127.0.0.1/0.0.0.0"   /usr/local/php/etc/php-fpm.conf && 
            sed -i "21a daemonizer=no" /usr/local/php/etc/php-fpm.conf
    
    COPY  php.ini  /usr/local/php/etc
    
    RUN rm -rf /tmp/php-5.6.31* && yum clean all
    
    WORKDIR /usr/local/php   
    
    EXPOSE 9000   #声明容器服务端口
    CMD ["./sbin/php-fpm","-c","/usr/local/php/etc/php-fpm.conf"]    
    #docker run -itd image-name  abc(这边加了abc会覆盖,变成CMD["abc"])
    
    #ENTRYPOINT 等于上面CMD,但是不会覆盖CMD。另外覆盖CMD需要在run后面用--entrypoint 来覆盖
    $ ls     
    php-5.6.31.tar.gz  Dockerfile  php.ini
    $ docker build -t php:v1 .  #进到在这个目录下执行构建一个镜像
    或
    $ docker image build -t nginx:v1 -f Dockerfile .   # -f 默认就是Dockerfile,最后 . 是上下文

    四,构建nginx镜像

    $ mkdir nginx
    $ cd nginx/
    $ vi Dockerfile
    FROM  centos:7             #基础镜像
    
    MAINTAINER cong
    
    RUN yum install -y  gcc gcc-c++ make openssl-devel pcre-devel
    
    ADD nginx-1.12.1.tar.gz /tmp  #ADD具有下载(url链接) 解压(压缩包) 拷贝功能,本地到镜像中的目录
    
    #如果这里些了user abc  下面的所有操作都会在这个命令下操作
    
    RUN cd /tmp/nginx-1.12.1 && 
            ./configure --prefix=/usr/local/nginx  && 
            make -j 4 && 
            make install 
    
    RUN rm -rf /tmp/nginx-1.12.1* && yum clean all
    
    COPY  nginx.conf  /usr/local/nginx/conf     #将当前目录的nginx.conf文件拷贝到容器的/usr/local/nginx/conf目录
    
    WORKDIR /usr/local/nginx  
    
    EXPOSE 80   #声明容器服务端口
    CMD ["./sbin/nginx","-g","daemon off;"]

    $ ls 
    nginx-1.12.1.tar.gz Dockerfile nginx.conf

    $ docker image build -t nginx:v1 .

    五,构建php环境

    1.自定义网络
    docker network create lnmp
    
    2.创建PHP容器
    docker run -itd 
    --name lnmp_php 
    --net lnmp 
    --mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html 
    php:v1
    
    3.创建Nginx容器
    docker run -itd 
    --name lnmp_nginx 
    --net lnmp 
    -p 888:80 
    --mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html 
    nginx:v1
    
    4.创建Mysql容器
    docker run -itd 
    --name lnmp_mysql 
    --net lnmp 
    -p 3306:3306 
    --mount src=mysql-vol,dst=/var/lib/mysql 
    -e MYSQL_ROOT_PASSWORD=123456 
    mysql --character-set-server=utf8

    六,构建tomcat环境

    $ mkdir tomcat
    $ cd tomcat/
    $ vi Dockerfile
    FROM  centos:7             #基础镜像
    
    MAINTAINER cong
    
    ADD jdk-8u45-linux-x64.tar.gz /usr/local  #ADD具有下载(url链接) 解压(压缩包) 拷贝功能,本地到镜像中的目录
    ENV JAVA_HOME /usr/local/jdk1.8.0_45
    
    ADD apache-tomcat-8.0.46.tar.gz /usr/local  
    COPY server.xml /usr/local/apache-tomcat-8.0.46/conf
    
    RUN rm -f /usr/local/*.tar.gz
    
    WORKDIR /usr/local/apache-tomcat-8.0.46
    EXPOSE 8080   #声明容器服务端口
    ENTRYPOINT ["./bin/catalina.sh","run"]
    
    $ ls 
    jdk-8u45-linux-x64.tar.gz Dockerfile server.xml
    #构建镜像 
    $ docker image build -t tomcat:v1 .
    
    #创建容器,/app/webapps目录需要先创建
    docker run -itd 
    --name=tomcat 
    -p 8080:8080 
    --mount type=bind,src=/app/webapps/,dst=/usr/local/apache-tomcat-8.0.46/webapps 
    tomcat:v1

    #创建默认工程名目录并放代码
    $ ls /app/webapps/
    $ mkdir /app/webapps/ROOT
    vi /app/webapps/ROOT/index.html

    .

    作者:陈耿聪 —— 夕狱

    出处:https://www.cnblogs.com/CGCong/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    微软认证考试考试 MCTS, MCITP, MCPD 享受9折优惠
    为程序中按钮添加Shield图标
    WinHEC 2008 China Windows 7 体验之蓝屏无罪
    我们像热爱生命一样热爱技术-洛杉矶Windows硬件工程大会
    WinHEC 之盖茨编年史期待 WinHEC 2008 China
    新年伊始 {阿猫阿狗的幸福生活系列} [一]
    通过数据库备份还原 TFS 到新服务器
    为托管应用程序添加DPI Aware支持
    轻松制作Windows Vista/Windows 7系统WIM镜像
    VSTS报表自定义之Bug重现频率报表
  • 原文地址:https://www.cnblogs.com/CGCong/p/12186883.html
Copyright © 2011-2022 走看看