Docker入门与应用实战之Dockerfile
2019-08-04 18:29
1291 查看
1.Dockerfile格式
2. Dockerfile指令
3. Build镜像
4. 构建Nginx,PHP,Tomcat基础镜像
前提:上传文件dockerfile .zip和apache-tomcat-8.0.46.tar.gz
[root@localhost first_stage]# unzip dockerfile\ .zip -d Dockerfile/ Archive: dockerfile .zip inflating: Dockerfile/Dockerfile-nginx inflating: Dockerfile/Dockerfile-php inflating: Dockerfile/Dockerfile-tomcat inflating: Dockerfile/nginx.conf inflating: Dockerfile/php-fpm.conf inflating: Dockerfile/php.ini
构建Nginx基础镜像:
[root@localhost first_stage]# sed -i 's/1.12.2/1.15.5/g' Dockerfile-nginx [root@localhost first_stage]# cat Dockerfile-nginx FROM centos:7 MAINTAINER www.dengaosky.com RUN yum install -y gcc gcc-c++ make \ openssl-devel pcre-devel gd-devel \ iproute net-tools telnet wget curl && \ yum clean all && \ rm -rf /var/cache/yum/* RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \ tar zxf nginx-1.15.5.tar.gz && \ cd nginx-1.15.5 && \ ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module && \ make -j 4 && make install && \ rm -rf /usr/local/nginx/html/* && \ echo "ok" >> /usr/local/nginx/html/status.html && \ cd / && rm -rf nginx-1.15.5* && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV PATH $PATH:/usr/local/nginx/sbin COPY nginx.conf /usr/local/nginx/conf/nginx.conf WORKDIR /usr/local/nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] [root@localhost first_stage]# docker build -t nginx:v1 -f Dockerfile-nginx . [root@localhost first_stage]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 5595125c7c2b 4 minutes ago 396MB centos 7 9f38484d220f 4 months ago 202MB [root@localhost first_stage]#
构建PHP基础镜像:
[root@localhost first_stage]# cat Dockerfile-php FROM centos:7 MAINTAINER www.dengaosky.com RUN yum install epel-release -y && \ yum install -y gcc gcc-c++ make gd-devel libxml2-devel \ libcurl-devel libjpeg-devel libpng-devel openssl-devel \ libmcrypt-devel libxslt-devel libtidy-devel autoconf \ iproute net-tools telnet wget curl && \ yum clean all && \ rm -rf /var/cache/yum/* RUN wget http://docs.php.net/distributions/php-5.6.36.tar.gz && \ tar zxf php-5.6.36.tar.gz && \ cd php-5.6.36 && \ ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm --enable-opcache \ --with-mysql --with-mysqli --with-pdo-mysql \ --with-openssl --with-zlib --with-curl --with-gd \ --with-jpeg-dir --with-png-dir --with-freetype-dir \ --enable-mbstring --with-mcrypt --enable-hash && \ make -j 4 && make install && \ cp php.ini-production /usr/local/php/etc/php.ini && \ cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf && \ sed -i "90a \daemonize = no" /usr/local/php/etc/php-fpm.conf && \ mkdir /usr/local/php/log && \ cd / && rm -rf php* && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV PATH $PATH:/usr/local/php/sbin COPY php.ini /usr/local/php/etc/ COPY php-fpm.conf /usr/local/php/etc/ WORKDIR /usr/local/php EXPOSE 9000 CMD ["php-fpm"] [root@localhost first_stage]# docker build -t php:v1 -f Dockerfile-php . [root@localhost first_stage]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE php v1 755346c48f2c 4 minutes ago 522MB nginx v1 5595125c7c2b 22 minutes ago 396MB centos 7 9f38484d220f 4 months ago 202MB [root@localhost first_stage]#
构建Tomcat基础镜像:
[root@localhost first_stage]# sed -i "s/8.0.52/8.0.46/g" Dockerfile-tomcat [root@localhost first_stage]# cat Dockerfile-tomcat FROM centos:7 MAINTAINER www.dengaosky.com ENV VERSION=8.0.46 RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y && \ yum clean all && \ rm -rf /var/cache/yum/* RUN wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz && \ tar zxf apache-tomcat-${VERSION}.tar.gz && \ mv apache-tomcat-${VERSION} /usr/local/tomcat && \ rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* && \ mkdir /usr/local/tomcat/webapps/test && \ echo "ok" > /usr/local/tomcat/webapps/test/status.html && \ sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV PATH $PATH:/usr/local/tomcat/bin WORKDIR /usr/local/tomcat EXPOSE 8080 CMD ["catalina.sh", "run"] [root@localhost first_stage]# docker build -t tomcat:v1 -f Dockerfile-tomcat .
5. 快速搭建LNMP网站平台
相关文章推荐
- Docker 学习笔记(一) Docker实战入门以及Dockerfile
- Docker学习总结(3)——Docker实战之入门以及Dockerfile(三)
- Docker入门实战(二)----使用Dockerfile创建自己的镜像
- [置顶] Docker学习总结(3)——Docker实战之入门以及Dockerfile(三)
- Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- Docker入门与应用实战之Docker概述
- Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
- Docker入门实战(三)——用Dockerfile构建镜像
- [置顶] Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
- Docker入门实战(三)——用Dockerfile构建镜像
- [置顶] Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
- park入门实战系列--6.SparkSQL(下)--Spark实战应用
- Docker入门学习(4)----Dockerfile制作第一个镜像和容器中的第一个javaweb应用
- Docker新手入门之五:Docker在真实应用中的使用实践
- docker容器从入门到实战0826