zoukankan      html  css  js  c++  java
  • Docker 中如何安装配置 Nginx

    拉取 nginx 最新版镜像,然后简单启动一个 nginx 容器:

    docker pull nginx:latest
    docker run --name nginx01 -d -p 80:80 nginx

    这样就安装并运行好了 nginx,可以使用浏览器访问 ip 地址即可看到 nginx 服务。

    如果要对 nginx 进行配置,就需要通过交互模式进入容器:

    docker exec -it nginx01 bash 

    在容器内部就可以访问到完整的 nginx 程序文件,可以找到:

    html文件目录:/usr/share/nginx/html

    nginx.conf 配置文件:/etc/nginx/nginx.conf

    default.conf 配置文件:/etc/nginx/conf.d/default.conf

    log日志文件目录:/var/log/nginx

    ssl配置目录:/ssl

    每一次都要进入容器内部去编辑配置文件有些不方便,而且还需要在容器内部安装 vi 或 vim,所以最好将容器与主机磁盘进行挂载。

    挂载之前,我们在主机上创建好 nginx 文件目录:

    sudo mkdir -p /home/docker/nginx/{log,ssl,html,conf/conf.d}
    sudo chmod -R 755 /home/docker/nginx/html

     然后通过 docker cp 命令将容器内的 nginx 配置文件 copy 到刚创建的主机文件目录中:

    docker cp nginx01:/etc/nginx/nginx.conf /home/docker/nginx/conf/nginx.conf
    docker cp nginx01:/etc/nginx/conf.d/default.conf /home/docker/nginx/conf/conf.d/default.conf

    接着,我们停止并删除 nginx01 容器:

    docker stop nginx01
    docker rm nginx01

    好了,我们要重新启动一个 nginx 容器了:

    docker run --name nginx02 -d
    --restart=always 
    --privileged=true
    -v /home/docker/nginx/html:/usr/share/nginx/html
    -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
    -v /home/docker/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf
    -v /home/docker/nginx/log:/var/log/nginx
    -v /home/docker/nginx/ssl:/ssl/ 
    -p 443:443 -p 80:80
    nginx

    使用 --privileged=true 参数,容器内的 root 用户才拥有真正的 root 权限,否则容器内的 root 只是主机上的一个普通用户。

    使用 -v path1:path2 参数,其中 path1 是主机的磁盘地址,path2 是 docker 容器的虚拟磁盘地址,可以定义多个 -v 映射多个文件夹。

    最后,通过 docker ps 命令查看 nginx 容器是否已成功运行。

    通常,我们在 nginx 中部署项目的时候,都喜欢在 conf.d/ 目录下创建新的配置文件(如:xxx.conf),但在 docker 中,你需要注意新建的 xxx.conf 文件是否被成功映射,否则可能就无法被 nginx 正常读取到,也就无法生效。

     一个简单的记录,希望有所帮助!

  • 相关阅读:
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    8.4 确定两个日期之间的月份数或年数
    (Java实现) 洛谷 P1553 数字反转(升级版)
  • 原文地址:https://www.cnblogs.com/journet/p/12785207.html
Copyright © 2011-2022 走看看