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

チェックサムファイルを保存

スクリプトとチェックサムを同じディレクトリに保存してください。GNU Coreutils のある Linux では次のコマンドでバイト列だけを検査できます。スクリプトは実行しません。コマンドには元のファイル名が必要です。

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

まだ照合していません。

スクリプトとチェックサムは同じサイトから取得し、独立した署名ではありません。一致しても安全性、上流の真正性、ホストへの適合性は証明しません。可変の依存先は別途確認してください。

検証と制限を読む

実行条件

  • Linux ホスト
  • Docker がインストール済みで実行中
  • root 権限または sudo
  • ホストの 80/443 番ポートが空いていること
  • ホストの /data に書き込み可能であること

適用場面

  • Docker 対応ホストで基本的な Nginx コンテナを起動する
  • 静的ファイル用に /data/nginx の構成を準備する
  • HTTP の初期設定を行い、TLS を別途設定する前の確認環境を用意する

主なポイント

  • /data/nginx/html、conf.d、logs と基本 nginx.conf を作成します
  • nginx:1.22.1 を取得し、自動再起動するコンテナとして起動します
  • 編集する設定とサイト内容をコンテナ外のホスト側に置きます
  • 既定で /healthz とサンプルページを用意します。HTTPS/TLS は設定しません

推奨手順

  1. Docker の導入状態、80/443 番ポートの使用状況、既存コンテナ名を確認します。
  2. コマンドを使う前にスクリプトをダウンロードして内容を確認し、sudo または root で実行します。
  3. /data/nginx を準備して nginx:1.22.1 を取得します。同名コンテナがあれば削除して作り直します。
  4. /data/nginx/conf.d または /data/nginx/html を編集します。既定の 443 割り当てだけでは HTTPS は動作しません。

注意事項

  • このスクリプトが作成する設定には TLS 証明書と HTTPS listener がありません。443 番公開を HTTPS 対応とみなさないでください。
  • 同名コンテナは強制削除されます。既存設定とコンテンツは再利用されるため、変更前に内容を確認してください。
  • ローカル確認失敗は警告だけで、完了表示が出ることがあります。ログ、設定構文、HTTP 応答を個別に確認してください。

対応範囲と制限

  • Linux、root、Docker、systemd、ローカル確認用の curl と、HTTP/HTTPS に指定するホストポートの空きが必要です。イメージは nginx:1.22.1 タグで、digest は固定されていません。dry-run とバックアップはありません。
  • ホストの 80/443 をコンテナの 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 確認が失敗または実行できなくても警告だけで、スクリプトは完了と表示することがあります。HTTPS を案内する前に TLS を別途設定して検証してください。

実行前にダウンロードして内容を確認し、バージョンを検証してください。ハッシュはこのバイト列を識別するだけで、安全性を証明しません。pipe 実行は取得した内容を直ちに実行し、上流の依存関係は変化することがあります。

関連トピック

Ubuntu: Docker 導入と VPN 接続の選択

ホストへの導入、クライアント接続、既存 Docker 上のサービスを区別し、旧イメージを新規構成の既定にしないでください。

トピックを見る

Docker サービス: 接続口と残存データを確認

HTTP、SQL、キャッシュ、FastCGI、イメージ内アプリを、プロトコルとデータ・置換影響で選びます。

トピックを見る