* Docker搭建LNMP开发环境
<https://blog.csdn.net/tracy_n/article/details/80436004#docker搭建lnmp开发环境>
*
*
* 导语: <https://blog.csdn.net/tracy_n/article/details/80436004#导语>
* 1.Docker基本命令
<https://blog.csdn.net/tracy_n/article/details/80436004#1docker基本命令>
* 2.Docker ubuntu多容器搭建LNMP环境
<https://blog.csdn.net/tracy_n/article/details/80436004#2docker-ubuntu多容器搭建lnmp环境>
*
* 2.1拉取镜像文件 <https://blog.csdn.net/tracy_n/article/details/80436004#21拉取镜像文件>
* 2.2构建容器 <https://blog.csdn.net/tracy_n/article/details/80436004#22构建容器>
* 2.3测试 <https://blog.csdn.net/tracy_n/article/details/80436004#23测试>
* 3.Docker win7搭建PHP开发环境
<https://blog.csdn.net/tracy_n/article/details/80436004#3docker-win7搭建php开发环境>
*
* 3.1 win7下搭建docker环境
<https://blog.csdn.net/tracy_n/article/details/80436004#31-win7下搭建docker环境>
* 3.2 win7下用docker搭建PHP开发环境
<https://blog.csdn.net/tracy_n/article/details/80436004#32-win7下用docker搭建php开发环境>
* 4.参考文献 <https://blog.csdn.net/tracy_n/article/details/80436004#4参考文献>


Docker搭建LNMP开发环境

导语:

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

1.Docker基本命令

*
docker info

使用docker info可以查看docker的基本信息,如版本号,镜像和容器数量等

*
docker search/pull

使用docker search从Docker Hub查找相关的镜像,然后通过docker pull可以将镜像拉取到本地宿主机中

*
docker images

使用docker images查看本地宿主机存在的镜像

*
docker run

通过镜像文件创建并运行一个容器,如:
docker run -d --name myNginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html
nginx

*
docker ps

查看正在运行的容器信息,docker ps -a可以查看所有容器(包括处于没有运行的容器)

*
docker inspect

命令docker inspect container_name可以获取容器的元数据,常用来查看容器的ip地址

2.Docker ubuntu多容器搭建LNMP环境

这个章节主要是使用docker在linux上搭建LNMP的开发环境,这里使用的是ubuntu 14.04虚拟机。
tip:安装虚拟机的时候,需要选择x64位的环境,经笔者测试docker不支持32位操作系统。

2.1拉取镜像文件
docker pull nginx php:5.6 mysql #拉取所需要的镜像 docker images #查看已有镜像
2.2构建容器
mkdir -p nginx/www nginx/conf #创建nginx目录用来挂载容器www和conf目录
创建容器并运行
cd nginx docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name
xy_mysql mysql#创建一个mysql容器并运行,-p将宿主机3307端口映射到容器的3306端口,-d宿主机以守护进程在后台运行 docker
run-d -p 9000:9000 -v $PWD/www:/usr/share/nginx/html --name myphpfpm --link
xy_mysql:mysql php:5.6-fpm #-v将当前宿主机挂载到容器的/usr/share/nginx/html目录
--link用于php-fpm和mysql容器之间的通信 docker run -d -p 8080:80 -v $PWD
/www:/usr/share/nginx/html --name mynginx --link myphpfpm:phpfpm nginx#构建Nginx容器
配置nginx容器
docker exec -it mynginx /bin/bash #进入nginx修改配置 vi /etc/nginx/conf.d/default
.conf
修改default.conf中的配置图如下:
location ~ \.php$ { fastcgi_pass phpfpm:9000; fastcgi_index index.php;
fastcgi_paramSCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
fastcgi_paramSCRIPT_NAME $fastcgi_script_name; include fastcgi_params; }
重启nginx服务并退出容器
service nginx restart
由于php-fpm没安装pdo扩展,安装相应扩展,先进入php容器
docker exec -it myphpfpm /bin/bash cd /usr/bin
安装扩展
docker-php-ext-install pdo_mysql
退出后重启并查看容器状态
docker ps


2.3测试
如上图,可以看到mysql、php-fpm和nginx服务都起来了,接下来我们验证一下配置是否正确: 在www下新建index.php文件,输入<?php
phpinfo();?>,保存退出,打开浏览器输入localhost:8080/index.php,
可以看到php信息,说明我们的php和nginx的服务都没问题,再验证mysql数据库的使用是否正常,修改index.php,
加入下面代码,然后再输入localhost:8080/index.php,回车,结果如图,lnmp开发环境就搭建完成啦.
数据库及表数据需自己创建
try { $con = new PDO('mysql:host=mysql;dbname=test', 'root', 'xy123456'); $con
->query('SET NAMES UTF8'); $res = $con->query('select * from test'); while ($row
= $res->fetch(PDO::FETCH_ASSOC)) { echo "id:{$row['id']} name:{$row['name']}";
} } catch (PDOException$e) { echo '错误原因:' . $e->getMessage(); }


3.Docker win7搭建PHP开发环境

这个章节主要是使用docker在win7 x64环境上搭建PHP+MYSQL开发环境,同样需要注意docker不支持win
32位的操作系统,所以32位要使用docker可参考上一章节在linux操作系统上搭建开发环境。

3.1 win7下搭建docker环境

*
win7安装docker有两个必要条件:

* 64位操作系统
* 支持虚拟化,并且,virtualization可用
*
win7安装docker具体步骤:

*
安装Docker Toolbox
进入Docker Toolbox的下载页面 <https://www.docker.com/products/docker-toolbox>
,安装包里面包含了git,Oracle虚拟机,docker client,docker
ISO这几个软件,下载安装包直接安装即可,安装完成后,可以在桌面上看到以下三个图标:

点击DockerQuickStart打开终端docker就会自动配置,若顺利终端则会出现提示如下图,则docker配置成功:


*
xshell连接docker

win7下的docker终端使用起来很不友好,不能复制,粘贴等,这里建议使用类似xshell的远程连接工具进行连接docker环境,下载xshell之后,填写docker环境相关信息连接,默认的用户名密码是docker/tcuser。

*
安装时的小tips

这里说一下上面提到虚拟化的问题,虚拟化在BIOS下设置,具体如何进入BIOS请百度查看相关说明。这里以华硕为例,按F2进入BIOS,先将语言设置为简体中文,选择进入Advanced高级——CPU,找到Intel
Virtualization Technology英特尔虚拟化技术 选项,设置为Enabled开启,再F10保存退出即可。 具体操作点击华硕开启虚拟化
<http://jingyan.baidu.com/article/8ebacdf0261d3249f65cd531.html>查看。

3.2 win7下用docker搭建PHP开发环境

* 首先用xshell连接docker后按Docker ubuntu多容器搭建LNMP环境
<https://blog.csdn.net/tracy_n/article/details/80436004#jump>
中的步骤搭建好LNMP环境;这里挂载的时候,打开VirtualBox,如图配置挂载目录!
* 这里写图片描述
<https://img-blog.csdn.net/20170831183538911?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHJhY3lfbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast>
如图挂载时就-v /f/docker:/usr/share/nginx/html这样就可以;
* 测试
在f:/docker下新建一个index.php文件输入
4.参考文献

* 《Docker技术入门与实战》 <http://download.csdn.net/download/xiaoyu5256/9809815>
*
《基于Docker搭建LNMP环境》 <http://blog.csdn.net/xy752068432/article/details/75975065>

基础篇到此结束啦,后面笔者会将整理的dockerfile篇和docker-composer篇写成博客发出来,想了解的朋友可以加我QQ:1194271006

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信