1.获取镜像
安装docker之后 , 使用命令获取指定镜像, 这里使用的是duckll/lnmp
更多docker镜像:https://hub.docker.com/search/?q=image&type=image
docker pull duckll/lnmp
下载完成后可查看镜像列表
2.使用镜像创建docker容器
docker run -d -ti --name phpthinkcmf2 -p 30002:80 -v /mnt/project/phpWorkspace:/workspace 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配置文件
该步骤为部署项目做准备, 本次安装后的nginx的目录为 /usr/local/nginx , 配置文件目录位于 /usr/local/nginx/conf/nginx.conf,注意这里是docker内部的nginx
打开之后可以看到初始配置如下,这里默认了php的运行目录,根据上面创建docker的步骤,我把项目放在了workspace下面,所以这里需要修改配置。
修改后的配置如下,注意,下面几行代码,若不添加,可能会出现只有首页面根目录可以访问,其他页面地址都是404 not found。
try_files $uri $uri/ /index.php?$query_string; //这一行网上查的需要加上,但是我没有加也没问题
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
修改完成后, 切换至/usr/local/nginx/sbin/ 目录 , nginx启动文件位于该目录下, 使用 ./nginx -t 检查配置文件语法 , 成功后重启nginx , 另外 , nginx启动的命令为 ./nginx
5.这样就访问服务器+端口 就可以访问到docker中/workspace/thinkcmf5/public下的项目了