docker安装配置nginx
- docker 下载nginx(镜像)
- 利用docker 启动nginx
- docker ps
- 如何像平常配置nginx
- 本地创建挂载文件
- 拷贝容器内的nginx配置文件到宿主机做挂载
- 修改配置文件 default.conf
- 运行镜像
今天我们来学习下linux 环境下安装配置nginx , nginx安装的方式大都是直接下载jar包,然后解压进行配置。但是docker的出现 ,让很多安装方便快捷,下面是具体步骤
docker 下载nginx(镜像)
docker pull nginx
注意:这里下载完成之后相当于是下载了nginx容器。
并不是像平常安装nginx 安装目录会在etc目录下面
得去docker容器里看
利用docker 启动nginx
docker run -d -p 91:80 nginx
这样就能启动一个 Nginx容器。在本例中,为 docker run添加了两个参数,含义如下:
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
访问 http://Docker宿主机 IP:91/,将会看到nginx的主界面如下:
用 docker ps命令即可列出运行中的容器
docker ps
是不是特别简单
如何像平常配置nginx
因为此时的nginx 是个容器, 大家可以进去容器看下 便会在etc里面存在,因为docker本身帮你弄了类似于一个操作系统 进去每个容器。也会有相应的 磁盘文件。
docker exec -it f0b1c8ab3633 /bin/bash
f0b1c8ab3633为imageID(docker ps 便可以看到)
进去之后会在etc下面看到nginx配置文件,这里面就是类似于平常我们非docker安装的nginx一样(启动命令等都一样)
但是 比如像我们平常配置文件 肯定不能每次都进容器更改。那么就需要把镜像中的文件挂载到本地磁盘。
本地创建挂载文件
mkdir -p /opt/nginx/{conf,conf.d,html,logs}
拷贝容器内的nginx配置文件到宿主机做挂载
拷贝容器内的nginx配置文件到宿主机做挂载,我们以后编辑nginx配置文件都在宿主机修改,不用去docker中去修改。
首先说明之前用普通方式装的nginx只需在一个配置文件nginx.conf 中修改,现在在docker容器内部nginx有两个配置文件,nginx.conf 和default.conf ,所以要把这两文件都取出来才行。
查看nginx容器的ID(docker ps)
copy文件:
docker cp 4ff3d4e08230:/etc/nginx/nginx.conf /opt/nginx/conf/
docker cp 4ff3d4e08230:/etc/nginx/conf.d/default.conf /opt/nginx/conf.d/
然后去查看我们的文件有没有拷贝出来
修改配置文件 default.conf
运行镜像
docker run \
--name nginx8088 \
-d -p 8088:80 \
-v /opt/nginx/log:/var/log/nginx \
-v /opt/nginx/html:/usr/share/nginx/html \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/conf.d:/etc/nginx/conf.d \
nginx
-v 是将:后面的容器内的文件挂载到宿主机上,也就是说用宿主机的配置来代替容器内的配置,更改宿主机的配置相当于是改容器内的配置,这样的话加入容器被删除了,也不会丢失我们的配置文件,
-v /opt/nginx/html:/usr/share/nginx/html 是将我们在default.conf中配置的静态资源配置,挂载到宿主机外,我们修改的配置文件指定的静态资源路径是指到容器内部的,到时候会去容器的目录下找,所以我们要把容器内部的静态资源挂载出来,让他去宿主机去找这样才能访问到!!!切记!!!!!!