1.获取镜像
安装docker之后 , 使用命令获取指定镜像, 这里使用的是duckll/lnmp
更多docker镜像:https://hub.docker.com/search/?q=image&type=image
docker pull duckll/lnmp
下载完成后可查看镜像列表
docker image ls
2.使用镜像创建docker容器
docker run -d -ti --name laravel -p 6001:80 -v /home/project/laravel:/home/wwwroot/default duckll/lnmp
其中 -d 表示后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”: 为容器指定一个名称;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
–volume , -v: 绑定一个卷, 即将本地目录映射到docker内部目录
duckll/lnmp 是镜像的名字
查看更多:https://www.runoob.com/docker/docker-run-command.html
3.lnmp安装成功
此时访问该服务器并加上docker的端口就可以访问到nginx了
4.修改nginx配置文件(操作在docker容器内部)
在nginx配置目录/usr/local/nginx/conf/nginx.conf下添加
if (!-e $request_filename)
{
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
修改完成后, 切换至/usr/local/nginx/sbin/ 目录 , nginx启动文件位于该目录下, 使用 ./nginx -t 检查配置文件语法 , 成功后重启nginx , 另外 , nginx启动的命令为 ./nginx
5配置宿主机nginx配置文件,实现域名访问docker容器中项目。
①主机安装的nginx 内docker0 监听的ip
命令:ifconfig
②cd /etc/nginx/sites-enabled下,创建laravel并配置文件内容如下
server {
listen 80;
server_name laravel.xiaozhige.xyz;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.0.1:6001;
}
}
③配置软连接
ln -s /etc/nginx/sites-enabled/laravel /etc/nginx/sites-available/
④重启nginx
⑤以域名laravel.xiaozhige.xyz(此域名配置自己的域名)phpinfo.php文件,显示以下内容即为成功
参考地址:https://blog.csdn.net/xiaodong_526/article/details/100703057
docker 宿主机(主机) nginx 反向代理 使用域名直接访问:https://blog.csdn.net/limingyue0312/article/details/102522387