1、拉取nginx
$ docker pull nginx
2、试运行nginx,并将容器中nginx的相关文件拷贝至本机
$ docker run -itd --name test-nginx -p 6606:80 nginx
2.1、进入容器
$ docker exec -it test-nginx /bin/bash
2.2、查找包含nginx的目录
$ whereis nginx
# nginx环境变量路径
$ which nginx
会显示下方路径
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
查看目录结构,若遇到问题,传送门
$ tree
结合windows
下nginx
目录我们可以在以下四个文件中看出,最主要的是以下两个路径
/etc/nginx:包含所需要的配置文件nginx.conf,conf.d目录下的default.conf /usr/share/nginx/html:包含所需要的启动文件目录
那还有一点,日志哪去了呢?打开配置文件看看!!!
从这里可以看出
日志文件在/var/log/nginx
目录下面
启动的文件在/var/run/nginx.pid
中
很重要的一点 最后一行 引入了 /etc/nginx/conf.d
/ 文件下所有的配置文件
通过查看default.conf
文件的信息 默认的页面路径 /usr/share/nginx/html
退出容器exit,回车
2.3、总结:
最重要的地方为以下四点,需要通过这四点将目录挂载到宿主机,那样妈妈再也不怕我丢失数据了,备份也方便。
# 日志路径
/var/log/nginx
# 启动文件目录
/usr/share/nginx/html
# 配置文件
/etc/nginx/nginx.conf
/etc/nginx/conf.d目录下的所有配置文件
OK,知道了上面这些,接下来正式开始docker
配置nginx
3、docker 安装 nginx
3.1 前提准备
将测试容器中的配置文件复制到宿主机中,不然等会挂载目录会报错
$ docker cp 容器名:容器内部目录 宿主机目录
e.g:
$ docker cp test-nginx:/etc/nginx/nginx.conf /home/service/nginx/nginx.conf
$ docker cp test-nginx:/etc/nginx/conf.d /home/service/nginx/conf.d
$ docker cp test-nginx:/usr/share/nginx/html /home/service/nginx/html
3.2、卸载之前的测试容器
$ docker stop test-nginx
$ docker rm test-nginx
3.3、安装nginx
端口映射可以根据实际情况选择
$ docker run -it --name mynginx -p 6606:80 \
-v /home/service/nginx/conf.d:/etc/nginx/conf.d \
-v /home/service/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/service/nginx/log:/var/log/nginx \
-v /home/service/nginx/html:/usr/share/nginx/html \
--restart=always nginx
ctrl+c停止运行,重启容器
$ docker restart mynginx
已经运行成功了,接下来就可以将实际需要启动的项目放到/home/service/nginx/html
中,并且修改配置文件启动它。
对宿主机挂载目录的修改会直接同步到容器中。
小知识:
在docker中进行目录挂载后,需要通过nginx
发布的项目都需要放到实际宿主机映射的目录,容器内部是无法访问宿主机目录的。
除非是直接在linux
上安装nginx