下载Nginx包
先下载到windows下再传到Linux虚拟机上面去。
切换到安装包的路径,解压Nginx包,并安装
tar -zxvf nginx-1.25.2.tar.gz #解压到当前目录
cd nginx-1.25.2 #进入解压后的文件夹
ls #文件夹中的文件:auto CHANGES.ru configure html man src CHANGES conf contrib LICENSE README
安装依赖库
#安装C编译器
yum install -y gcc
#安装pcre库
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
安装
./configure --prefix=/usr/local/nginx #使用prefix选项指定安装的目录
make
make install
启动
cd /usr/local/nginx/sbin
ls # 里面是一个nginx的可执行文件
./nginx # 启动这个可执行
关闭防火墙
systemctl stop firewalld
在浏览器输入对应的ip地址
http://192.168.107.137/
以上即为安装全部步骤。
下载Nginx镜像
命令 | 描述 |
---|---|
docker pull nginx | 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest ) |
docker pull nginx:xxx | 下载指定版本的Nginx镜像 (xxx指具体版本号) |
创建Nginx配置文件
启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf) 之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件 当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果
# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
创建Nginx容器并运行
docker run \
-p 9002:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
命令 | 描述 |
---|---|
--name nginx | 启动容器的名字 |
-d | 后台运行 |
-p 9002:80 | 将容器的 9002(后面那个) 端口映射到主机的 80(前面那个) 端口 |
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf | 挂载nginx.conf配置文件 |
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d | 挂载nginx配置文件 |
-v /home/nginx/log:/var/log/nginx | 挂载nginx日志文件 |
-v /home/nginx/html:/usr/share/nginx/html | 挂载nginx内容 |
nginx:latest | 本地运行的版本 |
\ | shell 命令换行 |