Skip to content

基于Docker安装Nginx

1.安装Nginx

  • 先启动一个 Nginx 实例, 可以得到相关配置

1.这里我将安装的软件放在/mydata目录下

shell
#进入mydata目录
cd mydata/
#创建nginx目录
mkdir nginx
# 拉取nginx 1.10版本镜像并允许容器
docker run -p 80:80 --name nginx -d nginx:1.10
  • 将容器内的配置文件拷贝到当前目录
shell
#在mydata目录执行,将容器的配置文件拷贝到/mydata/nginx目录下
docker container cp nginx:/etc/nginx .

image-20230108112548965

  • 终止原容器, 并删除原容器, 保留配置文件即可
shell
docker stop nginx
docker rm nginx
  • 修改文件名, 并把 conf 移动到 /mydata/nginx 下
shell
#将nginx目录更改为conf目录
mv nginx/ conf 
#重新创建nginx目录
mkdir nginx
#将conf目录移动到nginx目录下
mv conf/ ./nginx/

image-20230108114600828

  • 创建新的 nginx,允许nginx容器,并对容器内指定目录和宿主机进行挂载,便于后续直接在宿主机修改配置
shell
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

image-20230108114544446

2.测试访问

  • 在 nginx/html 目录下创建 index.html
shell
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也是同理

shell
# 1.进入/mydata/nginx/html目录
cd /mydata/nginx/html/
# 2.创建index.html文件
vim index.html
# 输入内容<h1>llp</h1> 保存退出

在 windows 访问 nginx 的 index.html , 默认端口是 80 , 如果访问不到, 检查网络是否畅 通, 防火墙是否打开了该端口

image-20230108115830015

image-20230108115714259

至此,基于Docker安装Nginx就算完成了。