网站建设资讯

NEWS

网站建设资讯

Docker入门与应用实战之Dockerfile-创新互联

1.Dockerfile格式

创新互联建站是专业的琼中黎族网站建设公司,琼中黎族接单;提供网站设计制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行琼中黎族网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

Docker入门与应用实战之Dockerfile

2. Dockerfile指令

Docker入门与应用实战之Dockerfile

3. Build镜像

Docker入门与应用实战之Dockerfile

4. 构建Nginx,PHP,Tomcat基础镜像

前提:上传文件dockerfile .zip和wordpress-4.9.4-zh_CN.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                  d25e10f6dc2f        3 minutes ago       369MB 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                  402fe17abd8f        4 seconds ago       522MB nginx               v1                  d25e10f6dc2f        15 minutes ago      369MB 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 && \ RUN wget http://archive.apache.org/dist/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 . [root@localhost first_stage]# docker images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE tomcat              v1                  118b74bae95f        52 seconds ago      427MB php                 v1                  402fe17abd8f        55 minutes ago      522MB nginx               v1                  d25e10f6dc2f        About an hour ago   369MB centos              7                   9f38484d220f        4 months ago        202MB [root@localhost first_stage]#

5. 快速搭建LNMP网站平台

Docker入门与应用实战之Dockerfile

快速部署LNMP网站平台 1、自定义网络  docker network create lnmp 2、创建Mysql容器  docker run -d \  --name lnmp_mysql \  --net lnmp \  --mount src=mysql-vol,dst=/var/lib/mysql \  -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7  --character-set-server=utf8  3、创建PHP容器  docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1  4、创建Nginx容器  docker run -d --name lnmp_nginx --net lnmp -p 88:80 \  --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1  5、以wordpress博客为例 https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

实战演练:

创建自定义网络 [root@localhost ~]# docker network create lnmp e206a2a632cf78430fc6c32d6f50a810c0a8f3ad8ad32287b354cad32de04aac [root@localhost ~]#  [root@localhost ~]# docker network ls NETWORK ID          NAME                DRIVER              SCOPE 67d8c68783da        bridge              bridge              local 2b6c8c029f58        host                host                local e206a2a632cf        lnmp                bridge              local fc002cd520b3        none                null                local [root@localhost ~]#  查看创建的容器 [root@localhost ~]# docker ps -a CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES [root@localhost ~]# 查看创建的卷: [root@localhost ~]# docker volume ls DRIVER              VOLUME NAME [root@localhost ~] 创建Mysql容器 docker run -d \  --name lnmp_mysql \  --net lnmp \  --mount src=mysql-vol,dst=/var/lib/mysql \  -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7  --character-set-server=utf8 创建PHP容器  docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1 创建Nginx容器  docker run -d --name lnmp_nginx --net lnmp -p 88:80 \  --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1  #保证当前目录下有nginx.conf文件   挂载后会自动创建本地卷mysql-vol、wwwroot [root@localhost first_stage]# docker volume ls DRIVER              VOLUME NAME local               mysql-vol local               wwwroot [root@localhost first_stage]# docker ps -a     CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES e09f16c2e561        nginx:v1            "nginx -g 'daemon of…"   55 seconds ago      Up 54 seconds       0.0.0.0:88->80/tcp    lnmp_nginx cc9ca12735fd        php:v1              "php-fpm"                4 minutes ago       Up 4 minutes        9000/tcp              lnmp_php 22217c6c82ce        mysql:5.7           "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        3306/tcp, 33060/tcp   lnmp_mysql [root@localhost first_stage]# 创建静态测试页面: [root@localhost first_stage]# ls /var/lib/docker/volumes/wwwroot/_data/ [root@localhost first_stage]# [root@localhost first_stage]# echo "

Hello,World.

">/var/lib/docker/volumes/wwwroot/_data/index.html 浏览器访问: http://192.168.16.121:88/  显示内容为:Hello,World. 创建动态测试页面: [root@localhost first_stage]# echo "">/var/lib/docker/volumes/wwwroot/_data/test.php 浏览器访问: http://192.168.16.121:88/test.php  显示内容为:Hello,World. 部署wordpress博客: [root@localhost first_stage]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz [root@localhost first_stage]# rm -rf /var/lib/docker/volumes/wwwroot/_data/* [root@localhost first_stage]# tar xf wordpress-4.9.4-zh_CN.tar.gz  [root@localhost first_stage]# mv wordpress/* /var/lib/docker/volumes/wwwroot/_data/ 浏览器访问: http://192.168.16.121:88/index.php  显示内容为:WordPress部署向导. 数据库名:wordpress 用户名:root 密码:123456 数据库主机:lnmp_mysql 表前缀:wp_ 提交 手工创建wp-config.php文件/var/lib/docker/volumes/wwwroot/_data/wp-config.php 现在安装 站点标题:Jacky 用户名:admin 密码:123456 确认密码:勾选“确认使用弱密码” 您的电子邮件:admin@123.com 安装WordPress

WordPress安装向导如下所示:

Docker入门与应用实战之Dockerfile

Docker入门与应用实战之Dockerfile

Docker入门与应用实战之Dockerfile

Docker入门与应用实战之Dockerfile

Docker入门与应用实战之Dockerfile

到此为止,WordPress博客已搭建成功了。

Docker入门与应用实战之Dockerfile

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:Docker入门与应用实战之Dockerfile-创新互联
分享网址:http://cdweb.net/article/ccojgi.html