Docker 應用安裝腳本

install_nginx_base_docker.sh

站內腳本建立 /data/nginx,僅在預設檔案不存在時寫入,拉取 nginx:1.22.1 並重建同名容器。它會映射 443,但不設定 TLS。

一鍵命令

curl -fL 'https://www.helper.sh/install_nginx_base_docker.sh' -o './install_nginx_base_docker.sh'

此命令只會下載本站檔案,不會執行。請先檢查儲存的原始碼並核對版本,再決定是否執行。

核對已下載檔案

與本頁面建置時內建的確切位元組比較。檔案僅在目前分頁處理,此工具不上傳、不持久儲存檔案。上限2 MiB。

預期 SHA-256
7f6032a0a10041e3da1c1cd80294d9e9d383ecaaf29b62dcdb7bd04799c75bd2

內建檔案位元組數: 6279

儲存校驗檔案

將腳本與校驗檔案儲存在同一目錄。Linux 安裝 GNU Coreutils 後可用下方命令僅檢查位元組,不執行腳本;使用此命令時需保留原檔名。

sha256sum --check './install_nginx_base_docker.sh.sha256'

尚未比較。

校驗值與腳本來自同一網站,不是獨立簽章。一致不證明安全、上游相依項目真實可信或適合本機;可變遠端相依項目需單獨審閱。

查看驗證與限制

執行要求

  • Linux 主機
  • Docker 已安裝並運行
  • 需要 root 權限或 sudo
  • 80 與 443 埠可用
  • /data 目錄可寫

適用場景

  • 在已具備 Docker 環境的主機上快速啟動 Nginx 1.22.1
  • 為靜態站點、下載分發或反向代理準備統一的 /data/nginx 目錄結構
  • 用一條已審閱命令在多台伺服器上標準化 Web 入口

腳本亮點

  • 自動建立 /data/nginx/html、conf.d、logs 與基礎 nginx.conf
  • 拉取 nginx:1.22.1 並以可自動重啟的容器方式運行
  • 設定、站點內容與日誌都保留在宿主機,方便後續維護
  • 預設附帶 /healthz 檢查介面與占位首頁

推薦流程

  1. 先確認 Docker 已安裝可用,且宿主機的 80/443 埠沒有被其他服務占用。
  2. 使用 sudo 或 root 執行 helper.sh 提供的一鍵命令。
  3. 等待腳本準備 /data/nginx、拉取 nginx:1.22.1,並在需要時重建同名容器。
  4. 後續可直接修改 /data/nginx/conf.d 或 /data/nginx/html 下的檔案,再視需要 reload 或 restart 容器。

安全提示

  • 如果主機已經使用 80 或 443 埠,請先確認現有服務安排。
  • 腳本產生的是基礎預設設定;正式反向代理規則請先審閱,再自行部署。
  • 如果該主機已經承載流量,建議在大改設定前先備份 /data/nginx。

相容範圍與限制

  • 需要 Linux、root、Docker、systemd、用於本機檢查的 curl,以及所選 HTTP/HTTPS 主機埠未被占用。映像使用 nginx:1.22.1 標籤,沒有固定 digest;沒有 dry-run 或備份。
  • 腳本將主機埠對應至容器 80 與 443,但產生的 Nginx 設定只監聽 HTTP 80,沒有設定 TLS 憑證或 HTTPS listener。映射 443 不代表 HTTPS 可用。
  • 若同名容器已存在,腳本會強制刪除。主機上的既有檔案會沿用;設定與佔位頁面只會在檔案不存在時建立。

受影響的檔案、服務與資料

  • 建立 /data/nginx/{html,conf.d,logs};只有檔案不存在時才寫入 /data/nginx/nginx.conf、conf.d/default.conf 與 html/index.html。
  • Docker 未執行時會啟動它,拉取 nginx:1.22.1,強制刪除同名容器後建立自動重新啟動的容器;設定與內容以唯讀方式掛載,日誌目錄可寫。
  • 將所選主機埠發布到容器 80/443。預設 server block 提供 /healthz 與靜態檔案;預設設定沒有 TLS。

唯讀核驗

  • 檢查 `docker ps --filter name=nginx-1221` 與 `docker logs --tail 100 nginx-1221`(自訂名稱時請替換)。
  • 使用 `docker inspect nginx-1221 --format "{{json .HostConfig.PortBindings}} {{json .Mounts}}"` 核對埠對應與掛載。
  • 以 `docker exec nginx-1221 nginx -t` 檢查語法;若保留預設設定,以 `curl -i http://127.0.0.1/healthz` 測試 HTTP。443 埠映射本身不能證明 HTTPS 正常。

失敗後的下一步

容器退出或 HTTP 檢查失敗時,查看 Docker 日誌、執行 `nginx -t`,並檢查主機埠衝突與 /data/nginx 設定。curl 檢查失敗或未安裝 curl 只會產生警告,腳本仍可能顯示部署完成。對外宣稱 HTTPS 前,須另外設定並驗證 TLS。

先下載、審閱並核對版本,再決定是否執行。雜湊只能識別這一版位元組,不能證明安全。pipe 命令會立即執行遠端內容;上游依賴也可能變動。

相關專題

Ubuntu:準備 Docker 或 VPN 接入

區分主機安裝、用戶端接入與既有 Docker 服務,不把舊應用映像作為新架構預設選擇。

查看專題

Docker 服務:檢查介面與保留狀態

按協定、資料目錄與取代影響區分 HTTP、SQL、快取、FastCGI 或映像內應用。

查看專題