基于Docker安装Nginx
1.安装Nginx
- 先启动一个 Nginx 实例, 可以得到相关配置
1.这里我将安装的软件放在/mydata目录下
#进入mydata目录
cd mydata/
#创建nginx目录
mkdir nginx
# 拉取nginx 1.10版本镜像并允许容器
docker run -p 80:80 --name nginx -d nginx:1.10
- 将容器内的配置文件拷贝到当前目录
#在mydata目录执行,将容器的配置文件拷贝到/mydata/nginx目录下
docker container cp nginx:/etc/nginx .
- 终止原容器, 并删除原容器, 保留配置文件即可
docker stop nginx
docker rm nginx
- 修改文件名, 并把 conf 移动到 /mydata/nginx 下
#将nginx目录更改为conf目录
mv nginx/ conf
#重新创建nginx目录
mkdir nginx
#将conf目录移动到nginx目录下
mv conf/ ./nginx/
- 创建新的 nginx,允许nginx容器,并对容器内指定目录和宿主机进行挂载,便于后续直接在宿主机修改配置
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
2.测试访问
- 在 nginx/html 目录下创建 index.html
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
# 包含 /etc/nginx/config.d目录下得 .conf结尾得配置文件
include /etc/nginx/conf.d/*.conf;
}
在允许nginx容器时,指定了挂载目录,将/etc/nginx目录挂载到了宿主机/mydata/nginx/conf目录,
因此/etc/nginx/config.d/*.conf
就对应 /mydata/nginx/conf/config.d/*.conf
/mydata/nginx/html:/usr/share/nginx/html
也是同理
# 1.进入/mydata/nginx/html目录
cd /mydata/nginx/html/
# 2.创建index.html文件
vim index.html
# 输入内容<h1>llp</h1> 保存退出
在 windows 访问 nginx 的 index.html , 默认端口是 80 , 如果访问不到, 检查网络是否畅
通, 防火墙是否打开了该端口
至此,基于Docker安装Nginx就算完成了。