docker pull nginx
之後的檔案就放在這裡面,對docker 裡Nginx 對應的目錄進行映射,就不用改文件進到容器裡了
mkdir -p /data/nginx/{conf,conf.d,html,logs}
#不方便的可以開兩個窗口,一個進到容器裡,左邊複製到右邊這樣,這是為了保證檔案正確
#启动容器 docker run -itd nginx /bin/bash #进入容器 docker attach xxxxxxxxxx
#說明 | #掛載路徑 | nginx路徑 | |
設定檔 | nginx.conf | /data/nginx/conf/nginx.conf | #/etc/nginx/nginx.conf |
設定檔資料夾 | conf.d資料夾 | /data/nginx/conf. d | /etc/nginx/conf.d |
首頁資料夾html路徑 | html資料夾 | /data/nginx/ html | /usr/share/nginx/html |
#日誌檔案 | log資料夾 | /data/nginx/logs | /var/log/nginx |
這是對應的掛載目錄,把nginx.conf 檔案和conf.d 裡的default.conf 複製到對應資料夾放好,後面就是修改了
這裡我最多就改改連接埠號,存取路徑之類的
server { #端口号 listen 80; #定义使用 localhost 访问 server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { #根目录位置 root /usr/share/nginx/html; #index 文件位置 index 1.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; } # 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; #} }
這裡測試用的1.html 自己寫的
<html> <head> <title>Mynginx</title> </head> <body> <h2> 欢迎使用nginx! </h2> </body> </html>
docker run --name myNginx -d -p 8089:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d:/etc/nginx/conf.d -v /data/nginx/logs:/var/log/nginx nginx
掛載路徑一定要對好,別寫錯了
-p 8089:80 這裡把80 端口映射到主機的8089 端口,這樣訪問就是8089 端口了,不用去改nginx 的默認端口
接下來就可以看下容器是否正常啟動
docker ps
如果沒有看到容器那說明啟動有問題,看看是設定檔寫的不對,還是掛載路徑不對之類的
#啟動後就可以直接瀏覽器localhost:8089 看到剛才寫的1.index 頁面了
當我們修改設定檔後要更新設定文件,這個時候開兩視窗就很酷
#进入容器 docker exec -it xxxxxxxxxxx /bin/bash #测试配置文件是否有问题 nginx -t #要是显示 successful 就可以更新了 nginx -s reload
以上是Docker上如何部署Nginx的詳細內容。更多資訊請關注PHP中文網其他相關文章!