佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 詳解docker nginx 容器啟動掛載到本地

詳解docker nginx 容器啟動掛載到本地

熱門標簽:美圖手機 檢查注冊表項 百度競價點擊價格的計算公式 使用U盤裝系統(tǒng) 硅谷的囚徒呼叫中心 網(wǎng)站建設(shè) 智能手機 阿里云

首先nginx容器內(nèi)部的結(jié)構(gòu):

進入容器:

docker exec -it b511b6049f57 bash

查看容器的結(jié)構(gòu)目錄:其實每一個容器就相當于一個獨立的系統(tǒng)。

root@b511b6049f57:/# ls
bin  dev home lib64	mnt proc run	 srv tmp var
boot etc lib	 media	opt root sbin sys usr

nginx的結(jié)構(gòu)目錄在容器中:

  • 日志位置:/var/log/nginx/
  • 配置文件位置:/etc/nginx/
  • 項目位置:/usr/share/nginx/html

如果你想在本地去添加location 需要把這些容器中的配置掛載到本地:

配置文件相對來說有點麻煩,一般nginx只需要加載nginx.conf就可以了,在dokcer中,是首先加載nginx.conf,然后在nginx.conf有這么一行include /etc/nginx/conf.d/*.conf;,就是加載conf.d目錄下的配置文件。所以對于配置只需要掛載到conf.d,覆蓋掉即可。

在本地創(chuàng)建對應(yīng)的文件夾和主配置文件nginx.conf:

mkdir -p /home/test/nginx/{log,conf,html}
touch nginx.conf 

nginx.conf包含子配置文件(最后一行):

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" "$http_host" "[$time_local]" "$request" "$status" "$body_bytes_sent" '
          '"$bytes_sent" "$gzip_ratio" "$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
          '"$upstream_addr" "$upstream_response_time" "$request_time" "$request_body" "$http_authorization" ';
  access_log /var/log/nginx/access.log main;

  sendfile    on;
  #tcp_nopush   on;

  keepalive_timeout 65;

  #gzip on;

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

在 conf下創(chuàng)建一個默認的default.conf:

server {

  listen    80;
  server_name localhost;

  #charset koi8-r;
  access_log /var/log/nginx/log/host.access.log main;

  location / {
    #root  /data/nginx/html;
    root  /usr/share/nginx/html;
    index index.html index.htm;
    #autoindex on;
  #try_files $uri /index/index/page.html;
    #try_files $uri /index/map/page.html;
  }

  #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;
  }

  location ~ /images {
    default_type              application/json;
    return 200 '{"code": "A000000", "message": "ok", "timestamp": "20180307184426", "data": {"isvip": "1", "monthProList": []}}';
  }

  # 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;
  #}
}

準備完成上面的本地文件以后開始啟動容器掛載到本地相關(guān)配置文件:

docker run --name docker_nginx -d -p 80:80 \

-v /home/test/nginx/log:/var/log/nginx \

-v /home/test/nginx/conf:/etc/nginx/conf.d \

-v /home/test/nginx/nginx.conf:/etc/nginx/nginx.conf \

-v /home/test/nginx/html:/usr/share/nginx/html nginx

###
  第一個-v:掛載日志目錄
  第二個-v:掛載配置目錄
  第三個-v:掛載主配置文件
  第四個-v:掛載項目目錄

掛載完成以后訪問主頁面:

然后在訪問我們之前在default寫的一個location /images:


重啟nginx:

docker exec -it b511b6049f57 nginx -s reload

到此這篇關(guān)于詳解docker nginx 容器啟動掛載到本地的文章就介紹到這了,更多相關(guān)docker nginx啟動掛載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標簽:湘潭 賀州 通遼 湖北 懷化 黃山 山南 煙臺

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解docker nginx 容器啟動掛載到本地》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    梁山县| 五指山市| 法库县| 马公市| 玛纳斯县| 屏南县| 定结县| 铜山县| 黑龙江省| 凌源市| 双柏县| 鞍山市| 大关县| 平江县| 泸西县| 托克逊县| 巨鹿县| 九龙坡区| 团风县| 连云港市| 武功县| 台南县| 库伦旗| 若尔盖县| 鄂托克旗| 洪泽县| 交城县| 衡水市| 启东市| 汉阴县| 丰都县| 凤城市| 涞水县| 高安市| 惠水县| 泸定县| 宁夏| 城步| 棋牌| 张北县| 明溪县|