Docker 下安装配置 lnmp 环境
前提:已经成功安装Docker
创建mysql容器
执行以下命令创建容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wqg951122 --name woann_mysql mysql:5.6
参数说明
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射(hostPort:containerPort)
- -e 设置环境变量,这里是设置mysql的root用户的初始密码*
- –name 容器的名字,随便取,但是必须唯一
进入到容器(其他容器进入方法都是一样的,替换容器名执行命令即可)
docker exec -ti woann_mysql /bin/bash
参数说明
- -t 在容器里生产一个伪终端
- -i 对容器内的标准输入 (STDIN) 进行交互
安装vim(每个创建的容器都要执行此步骤,后续忽略)
刚创建的容器没有安装vim,所以要手动安装,先执行
apt update
再执行
apt-get install vim
安装完毕即可
创建php容器
执行以下命令创建容器
docker run -d -v /home/wwwroot:/home/wwwroot -p 9000:9000 --link woann_mysql:mysql --name woann_phpfpm php:7.2-fpm
参数说明
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射
- -v 添加目录映射,即主机上的
/home/wwwroot
和容器中/home/wwwroot
目录是同步的 - –name 容器的名字
- –link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。
这里如果不指定–link参数其实也是可以得,因为容器本身也是有ip的且唯一,所以我们也可以直接利用ip去访问容器。添加php测试文件
在
/home/wwwroot
目录下添加测试php文件index.php
内容:<?php phpinfo();
创建nginx容器
执行以下命令创建容器
docker run -d -p 80:80 -v /home/wwwroot:/home/wwwroot --link woann_phpfpm:phpfpm --name woann_nginx nginx
参数说明:
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射
- -v 添加目录映射,这里最好nginx容器的根目录最好写成和php容器中根目录一样。但是不一点非要一模一样,如果不一样在配置nginx的时候需要注意
- –name 容器的名字
- –link 与另外一个容器建立起联系
进入到nginx容器修改配置文件
- nginx配置文件目录在
/etc/nginx/
目录下 - 主配置文件为
/etc/nginx/nginx.conf
- 引用配置文件为
/etc/nginx/conf.d/*.conf
- nginx默认创建了一个引用配置文件(/etc/nginx/conf.d/default.conf)
执行vim /etc/nginx/conf.d/default.conf
添加如下代码,让nginx接收到php请求时自动转发到phpfpm容器
location ~ \.php$ { root /home/wwwroot; fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
测试结果
查看刚才创建的所有容器
docker ps
该命令查看所有正在运行的容器,如查看所有,在命令后加
-a
如下图所示
测试
用浏览器访问http://127.0.0.1/index.php
,即可看到phpinfo的信息页面。至此lnmp搭建完毕。
本作品采用《CC 协议》,转载必须注明作者和本文链接
docker 创建的MySQL容器内默认就是Ubuntu吗
@lovecn 对
请问同一个局域网的电脑访问我电脑上的ip,docker怎么设置