精华内容
下载资源
问答
  • Docker里面Nginx挂载目录启动失败 1.就遇到挂载目录启动失败作下总结描述 2.Docker ps -a查看一直是退出状态 3.可以查看下容器日志 4.这里提示的错误是权限不足,现在提供解决方法,插入下面两行 –restart=always...

    Docker里面Nginx挂载目录启动失败
    1.就遇到挂载目录启动失败作下总结描述
    在这里插入图片描述
    2.Docker ps -a查看一直是退出状态
    在这里插入图片描述
    3.可以查看下容器日志
    在这里插入图片描述
    4.这里提示的错误是权限不足,现在提供解决方法,插入下面两行

    –restart=always(一直启动)
    –privileged=true(高级权限)
    如下
    docker run -d -p 80:80 --name nginx-web
    –restart=always
    –privileged=true
    -v /Docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
    -v /Docker/nginx/logs:/var/log/nginx nginx

    5.再去运行容器0k

    展开全文
  • 在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,现总结如下: 1. 拉去nginx镜像 docker pull nginx 2. (关键)查看nginx镜像里面配置文件、日志等文件的具体位置,只有找到镜像...

    在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,现总结如下:

    1. 拉去nginx镜像

    docker pull nginx
    

    2. (关键)查看nginx镜像里面配置文件、日志等文件的具体位置,只有找到镜像配置文件的路径,后面挂载文件和文件夹才能覆盖这些路径

    • 以终端的方式打开镜像容器
    docker exec -it nginx bash
    
    • 找到镜像中nginx.conf配置文件
      路径:/etc/nginx/nginx.conf
      使用命令:cat /etc/nginx/nginx.conf 查看nginx.conf文件内容然后拷贝出来
    • 找到default.conf配置文件
      路径:/etc/nginx/conf.d/default.conf
      用命令:cat /etc/nginx/conf.d/default.conf 查看default.conf文件内容然后拷贝出来
    • 找到默认首页文件夹html
      路径:/usr/share/nginx/html
    • 找到日志文件位置
      路径:/var/log/nginx

    然后退出容器终端 exit

    3. nginx镜像启动容器mynginx并且挂载文件夹和文件到容器中

    • 在Docker Desktop > Settings > Shared Drives 选中文件所在磁盘,如图 :

    image.png

    • 创建目录信息,结构如下
    //4个文件夹
    //放置nginx.conf文件,内容建议从nginx容器的终端中nginx.conf配置文件复制,这样子就保证了配置文件中的路径与镜像中配置文件的路径能保持一致
    D:\docker\Nginx\data\nginx\conf  
    //放置default.conf文件,内容建议从nginx容器的终端中default.conf配置文件复制,这样子就保证了配置文件中的路径与镜像中配置文件的路径能保持一致
    D:\docker\Nginx\data\nginx\conf.d
    //首页页面
    D:\docker\Nginx\data\nginx\html
    //日志信息
    D:\docker\Nginx\data\nginx\logs
    
    • html目录下新建index.html
    <html>
    	<head>
    		<title>Mynginx</title>
    	</head>
    	<body>
    		<h1>恭喜Docker搭建nginx成功,欢迎使用!</h1>
    	</body>
    </html>
    

    这里可能会存在编码问题导致页面乱码,在default.conf > server添加 charset ‘utf-8’ 可解决

    image.png

    4. 使用 nginx 镜像

    docker run -d -p 80:80 --name nginx-web 
    -v D:\docker\Nginx\data\nginx\html:/usr/share/nginx/html 
    -v D:\docker\Nginx\data\nginx\conf/nginx.conf:/etc/nginx/nginx.conf 
    -v /root/nginx/logs:/var/log/nginx 
    -v D:\docker\Nginx\data\nginx\conf.d: /etc/nginx/conf.d nginx  
    

    命令说明:

    • -p 80:80:将容器的80端口映射到主机的80端口(因此配置容器的nginx的监听端口时,一定要配置为80端口)
    • –name nginx-web:将容器命名为nginx-web
    • -v D:\docker\Nginx\data\nginx\html:/usr/share/nginx/html :将主机中当前目录下的html挂载到容器的html
    • -v D:\docker\Nginx\data\nginx\conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
    • -v /root/nginx/logs:/var/log/nginx:将主机中当前目录下的logs挂载到容器的/nginx
    • -v D:\docker\Nginx\data\nginx\conf.d: /etc/nginx/conf.d:将主机中当前目录下的conf.d挂载到容器的/etc/nginx/conf.d

    5. http://localhost:80 打开网页看看效果

    image.png

    6. 实现反向代理163网站

    在conf.d下新建to163.conf文件,内容如下:

    upstream uicps  {
         server www.163.com;
    }
    server {
        listen 80;
        server_name  localhost;
        root   html;
        index  index.html index.htm index.php;
        location / {
            proxy_pass  http://uicps;
     
            proxy_redirect     off;
            proxy_set_header   Host     www.163.com;  #           $host;不能使用$host变量
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
       }
        #      $host 和 $http_host 都是你访问 nginx 的时候的 host ,并不是你反代的那个 host 
    }
    

    打开浏览器输入server_name访问

    image.png

    7. 代理个人发布服务器的项目

    在conf.d下新建server.person.conf文件

    server {
        listen  80;
        server_name  www.if404.com;
        access_log /var/log/nginx/if404.access.log main;
        error_log /var/log/nginx/if404.error.log error;
        location / {
            proxy_set_header  Host  $http_host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass  http://宿主机IP:8080;
        }
    }
    

    重启nginx,访问server_name即可。

    展开全文
  • docker pull nginx 命令安装 查找 Docker Hub 上的 nginx 镜像 [root@rabbitmq1 ~]# docker search nginx $ docker pull nginx 等待下载完成后,我们就可以在本地镜像列表里查到 REP...

    docker pull nginx 命令安装

    查找 Docker Hub 上的 nginx 镜像

    [root@rabbitmq1 ~]# docker search nginx
    
    $ docker pull nginx

    等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。

     
    

    以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例:

    $ docker run --name runoob-nginx-test -p 8081:80 -d nginx
    • runoob-nginx-test 容器名称。
    • the -d设置容器在在后台一直运行。
    • the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口

    执行以上命令会生成一串字符串,类似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,这个表示容器的 ID,一般可作为日志的文件名。

    我们可以使用 docker ps 命令查看容器是否有在运行:

    $ docker ps
    CONTAINER ID        IMAGE        ...               PORTS                  NAMES
    6dd4380ba708        nginx        ...      0.0.0.0:8081->80/tcp   runoob-nginx-test

    PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。

    在浏览器中打开 http://192.168.98.105:8081/,效果如下:

     


    nginx 部署

    首先,创建目录 nginx, 用于存放后面的相关东西。

    $ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

    拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:

    docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/nginx/conf
    • www: 目录将映射为 nginx 容器配置的虚拟目录。
    • logs: 目录将映射为 nginx 容器的日志目录。
    • conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

    部署命令

    $ docker run -d -p 8089:80 --name runoob-nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

    命令说明:

    • -p 8089:80: 将容器的 80 端口映射到主机的 8089 端口。

    • --name runoob-nginx-test-web:将容器命名为 runoob-nginx-test-web。

    • ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

    • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

    • -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

    启动以上命令后进入 ~/nginx/www 目录:

    $ cd ~/nginx/www

    创建 index.html 文件,内容如下:

    
     
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>菜鸟教程(runoob.com) </title>
    6. </head>
    7. <body>
    8. <h1>我的第一个标题 </h1>
    9. <p>我的第一个段落。 </p>
    10. </body>
    11. </html>

    输出结果为:

    相关命令

    如果要重新载入 NGINX 可以使用以下命令发送 HUP 信号到容器:

    $ docker kill -s HUP container-name

    重启 NGINX 容器命令:

    $ docker restart container-name

    参考链接:https://www.runoob.com/docker/docker-install-nginx.html 

            <div class="person-messagebox">
                <div class="left-message"><a href="https://blog.csdn.net/qq_35275233">
                    <img src="https://profile.csdnimg.cn/8/9/D/3_qq_35275233" class="avatar_pic" username="qq_35275233">
                </a></div>
                <div class="middle-message">
                                        <div class="title"><span class="tit "><a href="https://blog.csdn.net/qq_35275233" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;}" target="_blank">剑灵尊</a></span>
                        <!-- 等级,level -->
                                                <img class="identity-icon" src="https://csdnimg.cn/identity/blog6.png">                                            </div>
                    <div class="text"><span>原创文章 273</span><span>获赞 158</span><span>访问量 29万+</span></div>
                </div>
                                <div class="right-message">
                                            <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;extend1&quot;:&quot;个人信息未关注&quot;}">关注</a>
                                                                <a href="https://im.csdn.net/im/main.html?userName=qq_35275233" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                        </a>
                                    </div>
                            </div>
                        
        </div>
    

    注意:配置文件里面的静态资源文件是容器的静态文件路径,而不是linux系统的路径,一定要搞清楚,不然无法访问

    展开全文
  • Docker 中运行 Nginx挂载本地目录到镜像

    网络学习记录:Docker 安装 Nginx

    Nginx 相关文件路径

    功能路径
    日志文件/var/log/nginx/
    配置文件/etc/nginx/nginx.conf ; etc/nginx/conf.d/default.conf
    项目首页/usr/share/nginx/html
    ls /var/log/nginx/
    access.log  error.log
    
    ls /etc/nginx/
    conf.d          koi-utf  mime.types  nginx.conf   uwsgi_params
    fastcgi_params  koi-win  modules     scgi_params  win-utf
    
    ls /usr/share/nginx/html
    50x.html  index.html
    

    在 Ubuntu 中创建所需文件

    mkdir -p nginx/conf nginx/conf.d nginx/html nginx/logs
    
    ls nginx
    conf  conf.d  html  logs
    

    文件夹路径

    cd nginx
    pwd 
    /home/ubuntu/nginx
    

    修改配置文件

    nginx/conf/nginx.conf

    cd /home/ubuntu/nginx
    
    touch conf/nginx.conf
    
    tee conf/nginx.conf <<-'EOF'
    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;
    
        include /etc/nginx/conf.d/*.conf;
    }
    EOF
    

    nginx/conf.d/default.conf

    默认使用 Nginx 容器的错误报警页面 50x.html

    touch conf.d/default.conf
    
    tee conf.d/default.conf <<-'EOF'
    server {
        listen       80;
        listen  [::]:80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    EOF
    

    nginx/html/50x.html

    touch html/50x.html
    
    tee html/50x.html <<-'EOF'
    <!DOCTYPE html>
    <html>
    <head>
    <title>Error</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>An error occurred.</h1>
    <p>Sorry, the page you are looking for is currently unavailable.<br/>
    Please try again later.</p>
    <p>If you are the system administrator of this resource then you should check
    the error log for details.</p>
    <p><em>Faithfully yours, nginx.</em></p>
    </body>
    </html>
    EOF
    

    nginx/html/index.html

    touch html/index.html
    
    tee html/index.html <<-'EOF'
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>Nginx have changed!</p>
    
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    EOF
    

    关闭nginx容器

    sudo docker stop nginx
    

    重新运行nginx镜像

    sudo docker run -dit --name nginx -p 80:80 -p 443:443 -v /home/ubuntu/nginx/logs:/var/logs/nginx -v /home/ubuntu/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/ubuntu/nginx/conf.d:/etc/nginx/conf.d  -v /home/ubuntu/nginx/html:/usr/share/nginx/html nginx
    

    浏览器查看效果(地址:设备IP)
    在这里插入图片描述
    出现了自定义添加的内容,说明挂载成功了


    补充:

    创建 portainer 容器(可以省略)

    sudo docker volume create nginx_data
    

    运行 portainer

    sudo docker run -dit -p 80:80 -p 443:443 --name nginx --restart always -v nginx_data:/data nginx
    

    设置自启

    docker update nginx --restart=always
    
    展开全文
  • Apache/Nginx 挂载虚拟目录

    千次阅读 2019-03-03 13:02:09
    参考地址 目录访问权限配置:https://blog.csdn.net/u010175124/article/details/18220495 # Nginx 挂载虚拟目录 在配置文件(nginx.htaccess)中添加 # /file/ 为web访问显示时的目录 location /file/ { alias E:/...
  • apache是通过mod_php来解析php nginx是通过php-fpm(fast-cgi)来解析php PHP 解释器是否嵌入 Web 服务器进程内部执行 mod_php 通过嵌入 PHP 解释器到 Apache 进程中,只能与 Apache 配合使用,而 fast-cgi 以独立...
  • Nginx负载WebApi

    2021-01-22 14:53:53
    一、安装Nginx 下载地址:http://nginx.org/en/download.html 安装教程:... 二、WebApi 创建ApiController public class FirstController : ApiController { [HttpGet] public string Show() { .
  • 一、 配置共享目录 ... 配置文件详情 default.conf server { listen 80; listen [::]:80;... server_name localhost;... root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502
  • 第二步 创建需要挂载的相应的挂载目录 mkdir -p /home/vue_pro/conf mkdir -p /home/vue_pro/html mkdir -p /home/vue_pro/conf.d mkdir -p /home/vue_pro/logs 将build的vue项目dist下的文件拷贝到/home/vue_...
  • ------- 安装Nginx ------ 到home目录下, 1.上传安装包 alt + p 进入sftp, 进行文件传输 put D:\nginx-1.17.5.tar.gz 2.解压安装包 进入到上传的目录 mv nginx-1.17.5.tar.gz /home/ cd /home/ tar -zxvf nginx-...
  • 直接拉取Docker Hub的官方Nginx镜像(类似git bash的git pull,拉取远程仓库的最新内容更新) docker images 查看本地所有的docker镜像 步骤二:基于nginx镜像创建容器 docker run --na...
  • 一篇文章教你简单地在阿里云服务器上的docker下建立一个nginxweb服务器
  • 今天在启动一个docker 运行nginx实例,在挂载目录时,出现访问静态目录时,权限不够 执行的命令是: docker run --name my-nginx -d -p 80:80 --restart=always -v /cloud/nginx/webroot:/usr/share/nginx/...
  • 这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,经过反复实验以及查看网上的教程,先总结如下: 1首先pull下载nginx镜像包 docker pull nginx 2(关键)查看...
  • Docker安装Nginx 文件挂载 动态刷新

    千次阅读 2019-06-12 23:30:26
    安装Nginx 1.在自定义位置创建文件夹和文件: nginx/www nginx/conf/nginx.conf nginx/logs 2.运行指令: docker run -p 80:80 --name nginx \ --network kspnet \ -v $PWD/www:/www \ -v $PWD/conf/nginx.conf:/etc...
  • docker pull nginx:latest 如果不需要挂载主机和容器的映射文件(不推荐) docker run --name nginx -p 8080:80 -d nginx 指定挂载主机和容器的映射文件 准备条件 在/home/docker/nginx/下创建 nginx,conf,...
  • Docker部署nginxweb服务,VOLUME的使用详解,实现数据持久化!持续更新,建议收藏❤
  • nginx web 服务

    2017-03-21 15:54:00
    作业一:nginx服务 二进制安装nginx包 ...作为共享存储挂载在三台web的网站根目录下 实现,在任意一台web上修改的结果,其余两台都可以看到 转载于:https://www.cnblogs.com/liuguniang/p/6590712.html...
  • 本次实验用到三台服务器,一台服务器安装haproxy实现调度,另两台服务器搭建nginx提供web服务,一台客户机测试访问。 服务器需将网络适配器更改为NAT模式,在线下载安装软件包调度服务器安装相关软件包Web服务器安装...
  • doker安装网上很多参考资料,下一步到底就行 ...nginx:latest php:7.1-fpm 下载镜像 docker pull php:7.1 docker pull nginx:latest 创建PHP容器 镜像拉取完毕,进行容器的创建,并且将容器文件夹映射到本...
  • Nginx是一个C语言开发的web服务器,可提供web服务,反向代理,负载均衡和http缓存功能。 1.拉取镜像:docker pull nginx:版本号 2.运行容器: docker run -d --name nginx -p 8080:80 nginx:版本号 3.挂载目录...
  • d -p 80:80 --name nginx 容器ID 设置nginx.conf本地挂载点 因为容器是一个最小的系统,没有vim命令 所以我们需要设置本地挂载点,修改本地时,容器中的文件也会修改,类似一个快捷方式 docker cp nginx容器ID:/etc/...
  • 整个测试管理平台需要用到三个容器,分为为:mysql、python(使用uwsgi服务器代替django自带的服务)、nginx Nginx作为前端静态页面的服务器,主要负责管理操作静态资源文件。 uwsgi作为django应用的服务器
  • docker 下安装nginx挂载配置文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,284
精华内容 6,513
关键字:

nginx挂载web