Docker搭建LNMP环境
使用docker手动安装mysql,php,nginx搭建web环境
一、Centos7安装Docker
卸载旧版本
1 | yum remove docker docker-common docker-selinux docker-engine |
安装需要的软件包
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 |
更新
1 | yum -y update |
安装依赖
1 | yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel |
安装docker
1 | sudo yum check-update |
docker加速
1 | cd /etc/docker |
1 | sudo tee /etc/docker/daemon.json <<-'EOF' |
1 | sudo systemctl daemon-reload |
二、docker安装NMP
拉取镜像 (nginx1.12.2,mysql5.7,php7.2)
1、获取 mysql 镜像
1 | docker pull mysql:5.7 |
启动容器 d_mysql
-p:端口映射,映射容器的3306 , 后面就是密码和名称
1 | docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name d_mysql mysql:5.7 |
2、获取 php7.2 镜像
1 | docker pull php:7.2-fpm |
创建 PHPfpm 容器
-v 前面是主机的目录映射容器的目录
link:挂上msyql
1 | docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link d_mysql:mysql --name d_phpfpm php:7.2-fpm |
测试目录映射
使用以下命令进入到PHP容器,就会到var/www/html 目录
1 | docker exec -it d_phpfpm bash |
新建一个PHP文件
1 | touch test.php |
然后退出容器
1 | exit |
到主机的 var/nginx/www/html 目录下也出现了个test.php
php 的扩展安装
1 | docker-php-ext-install pdo_mysql(curl ...) |
要安装php-redis的话,需要另外下载,执行下面这个命令就可以了,有问就no或者空格就好
1 | pecl install redis && docker-php-ext-enable redis |
安装后 php-m
3、获取 Nginx1.12.2 镜像
1 | docker pull nginx:1.12.2 |
运行 Nginx 容器
-p:映射80端口
-v:映射目录,最好和PHP的一样
-name:容器名
-link:跟PHP关联
1 | docker run -d -p 80:80 --name d_nginx -v /var/nginx/www/html:/var/www/html --link d_phpfpm:phpfpm --name d_nginx nginx:1.12.2 |
修改 Nginx 容器配置使其支持 PHP
进入 Nginx 容器
1 | docker exec -it d_nginx bash |
到 conf 目录修改配置文件 default.conf
1 | vi etc/nginx/conf.d/default.conf |
如果提示 vi 命令不存在,那就下一个 vim
1 | apt-get update |
把对 php 支持的注释去掉并修改路径
1 | # 修改 |
重新加载 Nginx
1 | nginx -s reload |
退出容器
1 | exit |
评论