Docker 部署lnmp
环境简介
主机名 | IP地址 | 系统 |
---|---|---|
docker_server | 192.168.169.20 | win10 |
docker 的搭建过程这里就不在详细描述了,具体请参照CentOS Docker部署 这篇文章 |
部署 lnmp
下载所需要的镜像 (nginx,mysql 5.6,php 7.0) 版本可自选
获取 Mysql 5.6 镜像
docker pull mysql:5.7
启动容器 cs_mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name lnmp_mysql mysql:5.6
参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-e 设置环境变量,这里设置mysql的root用户的初始密码
-name 容器的名称、只要求唯一性
获取php 7.0镜像
docker pull php:7.0-fpm
启动php 容器
docker run -d -v F:\docker\data\nginx\www\html:/var/www/html -p 9000:9000 --link lnmp_mysql:mysql --name lnmp_php php:7.0-fpm
参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,主机上的F:\docker\data\nginx\www\html映射到容器里面的/var/www/html,如果主机没有这个目录就创建这个目录,或者映射别的目录,但是后面路径要统一
-name 容器的名字
-link 容器与另外一个容器建立联系,这样就可以在当前的容器去使用另一个容器里的服务
测试目录映射
在主机F:\docker\data\nginx\www\html 目录下创建php测试页面,会直接映射到容器里面
docker exec lnmp_php cat /var/www/html/index.php
//看直接映射到了容器内部了
php的扩展安装
安装php-redis
pecl install redis && docker-php-ext-enable redis
安装后执行 php -m //查看安装了那些
php -m
获取Nginx镜像
docker pull nginx
启动Nginx容器
docker run -d -p 80:80 --name lnmp_nginx -v F:\docker\data\nginx\www\html:/var/www/html --link lnmp_php:phpfpm nginx
参数说明
-d 让容器运行在后台
-p 添加主机到容器的端口映射
-v 添加目录映射,这里最好nginx容器的根目录最好写成和php容器中根目录一样。但是不一定非要一样,如果不一样在配置nginx的时候需要注意
-name 容器的名称
-link 容器之间建立起来联系
修改Nginx 的配置文件,使他支持php ,方式有多种,这里我直接拷贝出配置文件修改在导进去即可
docker cp lnmp_nginx:/etc/nginx/conf.d/default.conf /opt/
cat default.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html; // 修改这里默认的路径
index index.html index.htmi index.php; //这里加入添加php的方式
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root html;
fastcgi_pass 92fc30be9a85:9000; //这里可以用容器ID,也可以用容器IP,都具备唯一性
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; //修改这里的路径
include fastcgi_params;
}
}
修改完毕导入配置文件到Nginx 容器里面
docker cp default.conf lnmp_nginx:/etc/nginx/conf.d/default.conf
进入到容器里面重新加载配置文件
docker exec lnmp_nginx nginx -t
//Nginx检测配置文件是否正确
docker exec lnmp_nginx nginx -s reload
在主机中查看所有容器映射的端口
netstat -ano
访问浏览器测试
看到这个页面说明搭建成功了!
微信公众号:Asz918q