Dockerfile构建LNMP分离环境部署wordpress 推荐 原创 小罗ge11 2017-03-02 00:54:09 博主文章分类:自动化 ©著作权 文章标签 lnmp Docker dockerfile 文章分类 办公效率 ©著作权归作者所有:来自51CTO博客作者小罗ge11的原创作品,请联系作者获取转载授权,否则将追究法律责任 最近忙着写自己的项目,也把一个站点的bbs论坛打算迁移到Docker中,测试没发现啥大问题。在单台上面的架构如下;(往后我们也是要讲到compose和swarm调度的慢慢来)1、首先我们先安装一下docker,好多人都发现国内用yum安装有各种问题;这里我们用国内的https://www.daocloud.io.登录后注册,然后点击下载。里面有提示,我们点击Linxu安装然后复制代码执行到shell上即可。[root@test nginx]# curl -sSL https://get.daocloud.io/docker | sh2、安装好之后,安装dockhub加速器,点击加速器,复制代码粘贴到shell.[root@test nginx]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://681a96df.m.daocloud.io {"registry-mirrors": ["http://681a96df.m.daocloud.io"], "live-restore": true } Success. You need to restart docker to take effect: sudo systemctl restart docker##执行脚本,主要是把仓库地址写到daemon.json文件下。[root@test nginx]# cat /etc/docker/daemon.json {"registry-mirrors": ["http://681a96df.m.daocloud.io"], "live-restore": true }3、准备工作都已经完成了,接下来我们来构建一下dockerfile在三个目录下,看下目录结构:[root@test test]# tree -L 2 --charset ASCII |-- mysql | |-- Dockerfile | |-- epel-6.repo | |-- my.cnf | `-- startup.sh |-- nginx | |-- Dockerfile | |-- nginx-1.11.10 | |-- nginx-1.11.10.tar.gz | |-- nginx.conf | `-- nginx_default.conf `-- php-fpm |-- Centos-6.repo |-- Dockerfile |-- epel-6.repo |-- php-5.5.38 `-- php-5.5.38.tar.gz5、看一下nginx 的 Dockerfile:[root@test nginx]# cat Dockerfile #lnmp centos 6.0 from centos:centos6 MAINTAINER xiaoluo <xiaoluo@test.com> ENV APP_DIR /web add nginx-1.11.10 /nginx-1.11.10 RUN yum -y groupinstall "Development Tools" "Server Platform Deveopment" RUN yum -y install openssl-devel pcre-devel RUN useradd nginx -s /sbin/nologin RUN cd /nginx-1.11.10 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre && make && make install RUN mkdir /usr/local/nginx/conf/vhosts RUN mkdir /var/log/nginx ADD nginx.conf /usr/local/nginx/conf/nginx.conf ADD nginx_default.conf /usr/local/nginx/conf/vhosts/default.conf EXPOSE 80 CMD ["/usr/local/nginx/sbin/nginx"]##nginx 相关php配置:[root@test nginx]# cat nginx_default.conf server { listen 80 default_server; server_name localhost; #charset koi8-r; location / { root /web; index index.php index.html index.htm; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root APP_DIR; } # Disable nginx log write favicon.ico location = /favicon.ico { log_not_found off; access_log off; } # pass the PHP scripts to FastCGI server listening on port 9000 # location ~ \.php$ { root /web; fastcgi_pass php:9000; #fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }###php:9000是通过后面的--link 容器之间互联指定6、开始构建nginx镜像:[root@test nginx]# docker build -t lnmp/nginx:1.0 .##查看是否生成镜像:[root@test nginx]# docker p_w_picpaths REPOSITORY TAG IMAGE ID CREATED SIZE lnmp/nginx 1.0 5f5d4169189d 4 minutes ago 669 MB7、开始构建php镜像:[root@test php-fpm]# cat Dockerfile from centos:centos6 ADD Centos-6.repo /etc/yum.repos.d/CentOS-Base.repo ADD epel-6.repo /etc/yum.repos.d/epel.repo add php-5.5.38 /php-5.5.38 RUN yum -y groupinstall "Desktop Platform Development" RUN yum -y install libmcrypt-devel bzip2-devel gcc openssl-devel php-mcrypt libmcrypt RUN cd /php-5.5.38 && ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-mcrypt --with-bz2 --enable-fpm --with-gd && make && make install RUN cp /php-5.5.38/php.ini-production /usr/local/php/etc/php.ini RUN mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf RUN useradd -M -s /sbin/nologin php RUN sed -i -e 's\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g' -e 's\nobody\php\g' -e 's\listen = 127.0.0.1:9000\listen = 0.0.0.0:9000\g' /usr/local/php/etc/php-fpm.conf RUN sed -i 's\;daemonize = yes\daemonize = no\g' /usr/local/php/etc/php-fpm.conf EXPOSE 9000 CMD ["/usr/local/php/sbin/php-fpm"]8、开始构建php镜像:[root@test php-fpm]# docker build -t lnmp/php:1.0 .9、构建mysql镜像的Dockerfile:[root@test mysql]# cat Dockerfile FROM centos:centos6 MAINTAINER xiaoluo "18878774@163.com" RUN yum install -y mysql-server mysql ADD ./startup.sh /opt/startup.sh RUN chmod +x /opt/startup.sh EXPOSE 3306 CMD ["/bin/bash","/opt/startup.sh"]##启动脚本:[root@test mysql]# cat startup.sh #!/bin/bash if [ ! -f /var/lib/mysql/ibdata1 ]; then mysql_install_db /usr/bin/mysqld_safe & sleep 10s mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456'; FLUSH PRIVILEGES;" killall mysqld sleep 10s fi /usr/bin/mysqld_safe**正常启动的时候,是没有问题的;当时当我们用-v做持久化的时候,好像说用户就失去对/var/lib/mysql的控制权,所以启动的时候我们要判断初始化才可以用-v来持久化相关目录,这个地方之前搞了好久就是挂不起来,后面原来是这个地方。10、开始构建mysql镜像:[root@test mysql]# docker build -t lnmp/mysql:1.0 .11、下面我们开始启动相关容器:[root@test web]# docker run -dit --name php -v /web:/web lnmp/php:1.0 [root@test web]# docker run -dit --name web -p 80:80 -v /web:/web --link php:php lnmp/nginx:1.0 [root@test web]#docker run -dit --name mysql -p 3306:3306 -v /opt/data:/var/lib/mysql lnmp/mysql:1.0#####[root@test mysql]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3527cddb4c50 lnmp/mysql:1.0 "/bin/bash /opt/st..." 4 seconds ago Up 3 seconds 0.0.0.0:3306->3306/tcp mysql fab93953c438 lnmp/nginx:1.0 "/usr/local/nginx/..." About a minute ago Up About a minute 0.0.0.0:80->80/tcp web d5854337c10b lnmp/php:1.0 "/usr/local/php/sb..." 3 minutes ago Up 2 minutes 9000/tcp php##可以看到我们已经都启动了所有的容器了。12、接下来我们登录一下mysql.创建一下wordpress使用的数据库:[root@test mysql]# mysql -uroot -p123456 -h 192.168.63.200 MySQL [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8; Query OK, 1 row affected (0.00 sec)13、然后我们把wordpress代码放到我们挂载的本地/web目录下面:[root@test web]# wget https://cn.wordpress.org/wordpress-4.7.2-zh_CN.tar.gz#然后解压出来。我们直接访问一下当前主机的IP地址:直接往下走注册即可:##到此在Docker 分离下安装wordpress已经完成,但是我们要思考一个问题,就是有没有更好的方法统一编排一下这些容器呢,给容器更好的分组管理:可以留意一下docker-compose,在1.13之后更是结合栈来实现跨主机编排。(docker-compose:文章http://xiaoluoge.blog.51cto.com/9141967/1902816)##还有一个就是如何给这些容器做成集群管理,保证节点的高可用。和资源监控调度呢。可以看一下1.12之后的docker swarm,构建集群非常简单。 Docker详情与集群架构部分可以查看:http://www.roncoo.com/course/view/3e9d9c48f76f4c698b8349d04b763467 赞 收藏 评论 分享 举报 上一篇:ELK采集之nginx 日志高德地图出城市IP分布图 下一篇:Docker compose基于容器编排构建实践 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 LNMP动态网站环境部署-WordPress 一、Linux部署安装CentOS7系统配置YUM源关闭防火墙二、Nginx部署配置官方YUM源,链接nginx: Linux packages[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo写入以下内容[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages LNMP NGINX WordPress 如何使用Dockerfile构建Tomcat镜像并部署war 我们都知道Docker构建一个镜像有两种方式:使用`docker commit`命令使用`Dockerfile`文件和`docker build`命令那么这两种方式有何区别呢?相同点:底层实现上一样,最终都是通过`docker commit`生成镜像;不同点:通过`Dockerfile`生成镜像,能够实现镜像文档化,使得镜像可读且易维护;通过`docker build`生成镜像则相反,不能实 tomcat docker xml 在Docker容器中部署LibreOffice:通过Dockerfile定制高效办公环境 随着容器技术的普及,Docker已成为快速部署和管理应用的首选工具。LibreOffice作为一款开源的办公套件,以其丰富的功能和兼容性受到许多企业和个人用户的青睐。将LibreOffice集成到Docker容器中,不仅便于跨平台部署,还能实现资源的隔离和管理,特别适合云环境下的文档处理服务。本文将详细介绍如何通过编写Dockerfile来构建一个包含LibreOffice的Docker镜像,并探 Docker Dockerfile 云环境 Docker 部署LNMP环境,Wordpress Docker 部署LNMP环境,Wordpress docker;lnmp;wordpres 分离部署LNMP搭建WORDPRESS详细步骤 分离部署LNMP搭建WORDPRESSLNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、PHPMyAdmin。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx较为稳定、功能丰富、安装配置简单、低系统资源,Nginx既可以在内部直接支持PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx用C编写,不论是系统资 LNMP Wordpress 使用Dockerfile构建docker lnmp环境 一、mysql 1、创建 Dockerfilemkdir mysql # 创建一个目录存放之后的Dockerfile,目录名无所谓cd mysql # 进入目录vi Dockerfile # 创建Dockerfile(文件名可以修改) 将如下内容填入 Dockerfile中FROM docker.io/centosMAINTAINER rslai "netlrs@163.com"ADD mysql docker centos Docke--Dockerfile 构建LNMP环境 Dockerfile 构建nginx并结合php 1、构建基础镜像 先构建一个基础镜像,添加repo的环境和编译的环境,而centos镜像就是初始的官方镜像,后面构建php、nginx、mysql都使用该镜像为base image: [root@server myCentos]# cat Docke Docker php nginx mysql LNMP环境下部署个人博客WordPress 概述WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可把WordPress当作一个内容管理系统(CMS)来使用本文将介绍如何部署WordPress2 布署wordpress.下载地址:官网:https://cn.wordpress.org/2.1 解压服务包解压缩WordPress博客程序到网页站点目录下cd /home java Lnmp环境下搭建部署WordPress WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。包下载到/usr/loca... nginx mysql html php mysql数据库 Dockerfile源码分离部署LNMP(Centos7) Dockerfile常用指令:1、FROM:构建镜像基于哪个镜像例如:FROMcentos2、MAINTAINER:镜像维护者姓名或邮箱地址例如:MAINTAINERSunqiuming3、RUN:构建镜像时运行的shell命令例如:RUN["yum","install","httpd"]RUNyum-yinstallhttpd4、CMD Dockerfile分离部署LNMP lnmp分离部署 lnmp分离部署 本次环境为: 系统信息 主机名 IP RHEL 8 nginx 192.168.100.1 RHEL 8 mysql 192.168.100.2 RHEL 8 php 192.168.100.3 nginx # 关闭防火墙 [root@nginx ~]# systemctl dis mysql nginx php docker分离部署lnmp 以下所需的全部的文件、镜像、软件,如有需要请到我的百度云分享下载:链接:http://pan.baidu.com/s/1kUVNdsj 密码:an9l项目需求:构建lnmp平台。要求nginx、php、mysql分开布署。Nginx通过fastcgi方式支持php动态页面实验完整框架如下:说明:使用单一进程容器,即一个容器只运行一种服务,而不是把所有服务放在一个容器的设计,让lnmp项目需要的Ng lnmp docker 分离部署 docker ——dockerfile镜像构建LNMP @toc(目录)一、构建自定义docker网络systemctlstopfirewalldsystemctldisablefirewalldsetenforce0dockernetworkcreatesubnet=172.18.0.0/16opt"com.docker.network.bridge.name"="docker1"mynetwork!image.png(https://s2.51ct mysql php nginx Dockerfile搭建lnmp环境 LNMP是继LAMP之后的又一个非常流行的web框架,即Linux+Nginx+Mysql+PH php nginx mysql lnmp架构mysql分离 lnmp环境部署 LNMP是Linux、Nginx、MySQL、PHP的缩写,是指在Linux环境下由Nginx、MySQL、PHP构建的Web后台运行环境,是一种流行先进、便捷轻便、高性能的一后台环境。我们今天介绍如何在支持yum源安装的系统上部署LNMP环境。Nginx安装和启动安装yum install nginx启动和停止service nginx startservice nginx stop#或者 lnmp架构mysql分离 nginx linux java mysql dockerfile构建lnmp dockerfile构建jdk镜像 1、什么是DockerFile简而言之,就是描述一个镜像如何构建的一个脚本文件,也就是描述镜像文件如何一步步构建而来的;2、构建镜像步骤:(1)书写DockerFile文件(2)通过docker build生成新镜像(3)通过docker run命令运行3、这里构建我们的新镜像需要使用到我们的FileZilla软件FileZilla: 是一个免费的开源FTP软件,分为客户端和服务端版本,其是一 dockerfile构建lnmp linux docker java centos 分离部署lnmp 环境 应用 IP 操作系统 nginx 192.168.122.131 centos8 mysql 192.168.122.132 centos8 php 192.168.122.133 centos8 准备工作 //关闭防火墙 # systemctl disable --now firewalld ... nginx mysql php html linux Docker构建LNMP环境并运行Wordpress网站平台 Docker部署LNMP环境 关闭防火墙,设置自定义网络 systemctl stop firewalld systemctl disable firewalld setenforce 0 docker network create --subnet=172.18.0.0/16 --opt "com ... mysql nginx php docker html 通过dockerfile 搭建lnmp 构建dockerfile DockerFile介绍DockerFile : 就是用来构建docker镜像的构建文件,命令脚本构建步骤:1、编写一个dockerFile 文件2、docker build 构建成为一个镜像3、docker run 运行镜像4、docker push 发布镜像(DockerHub、阿里云镜像仓库)DockerFile构建过程基础知识:1、每个保留关键字(指令)都是必须是大写2、执行从 通过dockerfile 搭建lnmp docker 运维 容器 centos Dockerfile运用(容器LNMP架构+wordpress) 环境准备 systemctl stop firewalld setenforce 0 #创建自定义网络,方便自定义容器网段 docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="doc ... mysql nginx php docker html