Docker学习笔记三、安装Nginx

一、镜像准备

# 拉取官方最新镜像
docker pull nginx
# 拉取指定版本镜像(本文选择)
docker pull nginx:1.19.3

二、创建本地目录

mkdir -p /usr/local/docker-nginx/{html,logs,conf} 

三、创建测试nginx容器 

docker run --name nginx-test -p 80:80 -d nginx:1.19.3

四、复制测试nginx容器配置文件

docker cp nginx-test:/etc/nginx/nginx.conf /usr/local/docker-nginx/conf 

五、停止测试nginx容器并删除

docker stop nginx-test && docker rm nginx-test 

六、创建正式nginx容器并挂载宿主机目录

 docker run -d -p 80:80 --name nginx \
-v /usr/local/docker-nginx/html:/usr/share/nginx/html \
-v /usr/local/docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker-nginx/logs:/var/log/nginx \
nginx:1.19.3

 如果需要容器进程直接与主机网络接口通信(host模式),请选择使用以下命令创建容器:

 docker run -d --network host --name nginx \
-v /usr/local/docker-nginx/html:/usr/share/nginx/html \
-v /usr/local/docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker-nginx/logs:/var/log/nginx \
nginx:1.19.3

 

 

七、上传代码到html目录,完成部署

浏览器访问: 

八、修改nginx.conf配置(可选)

nginx.conf参考配置


user  nginx;
worker_processes  1;

#配置Nginx worker进程最大打开文件数
worker_rlimit_nofile 65535;    

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {

#单个进程允许的客户端最大连接数
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 50m;

 

    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;

    include /etc/nginx/conf.d/*.conf;

    # 客户端真实IP
    proxy_set_header  X-Real_IP  $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    
    server {
        listen       80;
        charset      utf-8;
        server_name  119.3.111.53;
        
        
        # 首页
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;

           if ($request_filename ~* .*\.(?:htm|html)$)
            {
                add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            }
        }
        
        # 大屏
        location /bigScreen {
            alias  /usr/share/nginx/html/bigScreen;
            index  index.html index.htm;
        }
        
        # 后台代理
        location /gfms {
            proxy_pass http://119.3.111.53:8080/gfms;
            proxy_redirect default;
        }
        
        # websocket代理
        location /gfms/dunHandler {
            proxy_pass http://119.3.111.53:8080/gfms/dunHandler;
            proxy_http_version 1.1;
            proxy_connect_timeout 5s;                #配置点1
            proxy_read_timeout 86400s;                  #配置点2
            proxy_send_timeout 12s;                  #配置点3
            proxy_set_header Upgrade $http_upgrade; 
            proxy_set_header Connection "Upgrade";  
        }
    }
    
}

 

配置生效,重启或者重新载入配置文件

docker restart nginx


docker exec -it nginx service nginx reload 

九、时区同步(容器默认UTC时区)

 # 1.复制主机localtime

docker cp /usr/share/zoneinfo/Asia/Shanghai nginx:/etc/localtime

# 2.重启容器

docker restart nginx

十、容器启动与关闭 

# 启动

docker start nginx

# 关闭

docker stop nginx

# 重启

docker restart nginx

十一、设置开机自启(可选)

# docker开机自启

systemctl enable docker.service

# nginx容器开机自启

docker update --restart=always nginx

Docker 是一种开源的容器化平台,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,然后在任何支持 Docker 的平台上运行这些容器。本文将介绍 Docker 基础知识和使用方法。 ## 安装 Docker Docker 官方提供了不同平台的安装包,可以在官网上选择对应平台的安装包进行下载。安装完成后,可以在命令行中输入 `docker version` 命令来验证 Docker 是否安装成功。 ## 镜像和容器 Docker 的核心概念是镜像和容器。镜像是一个只读的模板,它包含了运行应用程序所需的所有信息,如代码、运行时环境、库文件、环境变量等。容器则是从镜像启动的运行实例,它可以被启动、停止、删除,并且可以与其他容器进行通信。 ### 镜像 Docker 镜像可以使用 `docker pull` 命令从 Docker Hub 上下载,也可以使用 `docker build` 命令从 Dockerfile 中构建。一个 Dockerfile 是一个包含构建 Docker 镜像所需的指令的文本文件。 例如,下面是一个构建一个基于 Ubuntu 操作系统的 Docker 镜像的 Dockerfile: ``` # 使用 Ubuntu 作为基础镜像 FROM ubuntu:latest # 设置镜像的作者 MAINTAINER yourname # 更新 Ubuntu 系统 RUN apt-get update # 安装必要的软件 RUN apt-get install -y nginx # 复制本地文件到镜像中 COPY index.html /var/www/html/ # 暴露容器端口 EXPOSE 80 # 设置容器启动命令 CMD ["nginx", "-g", "daemon off;"] ``` 使用 `docker build` 命令来构建 Docker 镜像: ``` $ docker build -t myimage . ``` ### 容器 使用 `docker run` 命令可以启动一个容器。例如,启动上面构建的 `myimage` 镜像: ``` $ docker run -d -p 8080:80 myimage ``` 其中 `-d` 表示在后台运行容器,`-p` 表示将容器的端口映射到主机的端口,`myimage` 是要启动的镜像名称。 使用 `docker ps` 命令可以查看当前正在运行的容器。使用 `docker stop` 命令可以停止容器。 ## Docker Compose Docker Compose 是一个工具,它可以定义和运行多个 Docker 容器。它使用 YAML 文件来配置应用程序的服务。例如,下面是一个简单的 Docker Compose 配置文件: ``` version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" ``` 使用 `docker-compose up` 命令可以启动这个应用程序。使用 `docker-compose down` 命令可以停止应用程序并删除容器。 ## 总结 本文介绍了 Docker 的基础知识和使用方法,包括镜像、容器和 Docker Compose。希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值