ps:假设读者能够在ubuntu环境下搭建lnmp环境的情况。
1、下载相应镜像到本地
docker pull php:5.4-fpm
docker pull php:5.5-fpm
docker pull php:5.6-fpm
docker pull php:7.0-fpm
docker pull php:7.1-fpm
docker pull mysql:5.7
docker pull nginx:1.11
2、创建相应容器
#创建php:5.4-fpm的容器并命名php5.4,将容器的9000端口映射到主机的9000端口。把主机的/home/ubuntu/nginx/www目录挂载到容器的/www目录(这个目录用于存放php脚本文件)
docker run -d -p 9000:9000 --name php5.4 -v /home/ubuntu/nginx/www:/www php:5.4-fpm
#在创建这个容器之前要先把前面创建的php5.4停止,不然9000端口会出现冲突。
docker run -d -p 9000:9000 --name php5.5 -v /home/ubuntu/nginx/www:/www php:5.5-fpm
#在创建这个容器之前要把前面创建的两个都停止,不能同时运行多个php容器,要使用不同版本时,必须先stop正则运行的php容器,在start另一个版本的php容器
docker run -d -p 9000:9000 --name php5.6 -v /home/ubuntu/nginx/www:/www php:5.6-fpm
#创建nginx容器,把配置主机的/home/ubuntu/nginx/conf目录挂载到容器的/etc/nginx/conf.d目录,用于处理nginx的配置文件,文件根目录与PHP的指向同一个
docker run -d -p 80::80 --name nginx1.11 -v /home/ubuntu/nginx/conf:/etc/nginx/conf.d -v /home/ubuntu/nginx/www:/www nginx:1.11
#创建mysql容器,-e MYSQL_ROOT_PASSWORD=123456将mysql容器的root密码初始化为123456
docker run -d -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
#创建infobright容器,与MySQL容器的创建方法类似
docker run -d -p 5029:5029 --name myinfobright -e MYSQL_ROOT_PASSWORD=root infobright:latest
#创建容器redis3.2, redis-server --apendonly yes 表示在容器执行redis-server启动命令,并打开redis持久化配置
docker run -d -p 6379:6379 --name redis3.2 -v /home/ubuntu/redis/data:/data redis:3.2 redis-server --appendonly yes
docker run -d -p 11211:11211 --name memcached memcached:latest #创建memcached容器。
![](https://box.kancloud.cn/9efea0922a4a40634c7813b9b05a784c_727x748.png)
安装镜像中非自带的php扩展:例如 php-redis 和 php-memcached 扩展:
php-redis扩展下载地址:https://github.com/phpredis/phpredis (选择适合的版本下载)
php-memcached下载地址:https://github.com/php-memcached-dev/php-memcached (选择适合版本下载)
可以在php容器内使用wget下载,也可以在ubuntu中下载后拷贝到容器中,我这里ubuntu中已经下载过这两个扩展,就直接用docker cp 将这两个扩展的源文件拷贝到php的容器中。
如果在容器中下载不要下载.zip类型,因为容器中没有unzip命令。可以在ubuntu中解压后将目录拷贝进容器。
docker cp /data/phpredis3.1.2 php5.6:/usr/src/php/ext/redis #将ubuntu中的/data/phpredis3.1.2拷贝到容器的/usr/src/php/ext/目录下并重命名为redis 。
docker-php-ext-install redis #安装 php-redis 扩展
安装memcached也是同理。。。
然后重启该容器即可。
到这里,环境已经初步搭建完成,访问主机的IP,可以查看运行情况,打印phpinfo查看扩展安装情况。