使用Docker安装Nginx服务
- 查看Docker镜像仓库中Nginx的可用版本。
docker search nginx
命令输出如下所示:
- 拉取最新版的Nginx镜像。
docker pull nginx:latest
- 查看本地镜像。
docker images
- 运行容器。
docker run --name nginx-test -p 8080:80 -d nginx
- 准备工作
mkdir -p /home/nginx
mkdir -p /home/nginx/log
docker cp nginx-test:/etc/nginx/nginx.conf /home/nginx/nginx.conf
docker cp nginx-test:/usr/share/nginx/html /home/nginx/
docker cp nginx-test:/var/log/nginx /home/nginx/log
docker stop nginx-test
docker rm nginx-test
- 启动一个最终的nginx(文件映射成功的)
docker run --name nginx -p 8080:80 \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/nginx/html:/usr/share/nginx/html:ro \
-v /home/nginx/log:/var/log/nginx \
-d nginx
命令参数说明:
- -it -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。
- -d nginx: 设置容器在后台一直运行。
- -v:文件挂载 指定宿机目录映射到容器内部的目录(上述就是把宿机
/home/nginx/conf/nginx.conf
的地址映射到容器内部的/etc/nginx/nginx.conf
目录里面去,容器加载/etc/nginx
目录的时候,实际就是用的/home/nginx
目录) - :ro 只读
命令输出如下所示:
- 在浏览器地址栏输入http://<ECS公网IP地址>:8080访问Nginx服务。
- 自定义脚本文件
nginx.sh
#! /bin/bash
docker stop nginx
docker rm nginx
docker run --name nginx -p 8080:80 \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/log:/var/log/nginx \
-d nginx
- 执行脚本文件
sh nginx.sh