Docker 配置LNMP环境

来源:互联网 发布:仿生设计知乎 编辑:程序博客网 时间:2024/06/04 18:00

由于当前多数服务器都是Linux的原因,本文只讲ubuntu下的安装!
环境配置: Windows已安装Docker

第一步:安装docker

安装教程:http://www.runoob.com/docker/ubuntu-docker-install.html

第二步:拉取ubuntu:16.04镜像

docker pull ubuntu:16.04

拉取成功后,查看所有镜像

docker images

第三步:将该镜像在一个容器中运行,并进入容器

docker run -dit --name my-lnmp ubuntu:16.04docker exec -it my-lnmp /bin/bash

第四步:更新容器 apt 源,安装curl,vim

apt-get updateapt-get install curlapt-get install vim

第五步:安装nginx

apt-get install nginx# 配置文件位置#> /etc/nginx/nginx.conf /etc/nginx/conf.d/*.conf# 默认主目录#> /usr/share/nginx/html/# 管理nginx服务service nginx start       // 启动service nginxstop        // 停止service nginx restart   // 重启测试 curl localhost

第六步:安装php7

apt-get install phpapt-get install php7.0-mysql php7.0-curl php7.0-xml php7.0-mcrypt php7.0-json php7.0-fpmphp7.0-gd php7.0-mbstring php-mongodb php-memcached php-redis

测试 (如果有结果,则表示安装成功)

php-v

配置php.ini

vim /etc/php/7.0/fpm/php.ini# 将cgi.fix_pathinfo=1这一行去掉注释,将1改为0#>  / 是vi查找的命令

配置php-fpm

vim /etc/php/7.0/fpm/pool.d/www.conf# 修改 listen = /var/run/php/php7.0-fpm.sock

配置nginx

vim /etc/nginx/sites-enabled/defaultindex index.html index.htm;改成index index.php index.html index.htm;

在service里面,location /{}下面增加以下配置

location ~ \.php$ {fastcgi_split_path_info ^(.+\.php)(/.+)$;# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini# With php5-cgi alone:# fastcgi_pass 127.0.0.1:9000;# With php5-fpm:fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}

容器中运行

1.启动 php-fpm

 service php7.0-fpm start

2.重启 Nginx ,检测配置是否成功

service nginx restart

3.新建 index.php 测试文件

echo "Hello World";

4.执行

curl localhost#如果看到`hello world!`表示运行成功

第七步:安装mysql

apt-get install mysql-server//测试service mysql startmysql -uroot -p

第八步:设置容器开机启动项

在.bashrc写入开机启动项vim~/.bashrc写入以下内容,保存# 开机启动项service php7.0-fpm startservice mysql startservice nginx start# tail -f /var/log/nginx/error.log将配置好的Docker容器,打包上传阿里云退出 dockerexit查看容器对应的 CONTAINER IDdocker ps -as将容器打包成新镜像docker commit  [CONTAINER ID]  new-lnmp停止正在运行的容器docker stop my-lnmp

第九步:设置ssh登录docker

//暴露docker端口22到主机端口9000dokcer run -p 9000:22apt-get updateapt-get install openssh-servervim /etc/ssh/sshd_config//修改 PermitRootLogin yes# StrictMode yes#修改用户密码passwd#启动ssh服务器service ssh startdocker restart containerssh 192.168.99.100 -p 9000

第十步 使用刚打包的镜像,创建容器

//-p的意思是 将docker的80端口和container的80端口绑定 -v 本地目录映射到容器内docker run -dit -p 80:80 -p 3306:3306 -p 9000:22 -v /var/www/:/var/www/  --name nginx-mysql-php7 new-lnmp /bin/bash

第十一步 在浏览器通过访问docker的ip(192.168.99.100)响应成功,则大功告成。

如果是Windows操作系统,docker的根目录是/c/user/User,可通过pwd查看。此时通过-v挂载磁盘的时候,建议直接在此目录下生成一个www文件夹。那么就可以通过以下命令生成容器了。

docker run -dit -p 80:80 -p 3306:3306 -p 9000:22 -v ~/www:/var/www/html --name lnmp1 new-lnmp /bin/bash或e:/path/todocker ip:192.168.99.100  container ip:172.17.0.3