Docker が nginx バインディング設定ファイルの実行に失敗する場合の問題を解決する方法

WBOY
リリース: 2023-05-17 09:34:05
転載
943 人が閲覧しました

スタートアップ コマンドの直接実行は失敗します

プル イメージ:

docker pull nginx
ログイン後にコピー

次に、スタートアップ コマンドを実行します:

docker run -d -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/cache:/var/cache/nginx \
--restart=always nginx
ログイン後にコピー
ログイン後にコピー

If /mydata/nginx/conf /nginx. conf ファイルが存在せず、docker では存在しないファイルのバインドが許可されていないため、ここで docker エラーが表示されます。

そして、空の /mydata/nginx/conf/nginx.conf を直接作成します。docker はエラーを報告しませんが、docker ps - を介して nginx がコンテナ内で正常に起動できません。 コマンド ビューでは、nginx の動作は nginx.conf 構成内の関連する構成に依存するため、nginx は exit または常に restart 状態になります。ファイル 。

ソリューションのアイデアと方法

最初に -v バインディングを使用せずにコンテナーを実行し、次にコンテナー内の関連ファイルを指定された場所に直接コピーします。その後、コンテナーを削除して、起動コマンドを直接実行します。

具体的な操作は次のとおりです:

最初に関連するフォルダーを作成します:

mkdir -p \
/mydata/nginx/html \
/mydata/nginx/conf \
/mydata/nginx/logs \
/mydata/nginx/cache
ログイン後にコピー

nginx コンテナーを実行します:

docker run -d --name nginx nginx
ログイン後にコピー

設定ファイルとフォルダーをコピーします指定されたディレクトリをホストに移動します:

docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf.d
ログイン後にコピー

元のコンテナを削除します:

docker rm -f nginx
ログイン後にコピー

起動コマンドを実行し、-v で関連するボリュームをバインドします:

docker run -d -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/cache:/var/cache/nginx \
--restart=always nginx
ログイン後にコピー
ログイン後にコピー

コピーを移動しますconf .dディレクトリ内のファイルを正しい場所に移動します:

 mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d/
 rm -rf /mydata/nginx/conf.d
ログイン後にコピー

nginx コンテナが正常に実行できるように、上記の操作を使用して nginx.conf ファイルを移動しますおよび conf.d ディレクトリはすべてホスト マシンにマップされています。nginx.conf ファイルを変更する必要がある場合、または .conf ファイルを ## に追加する必要があります。 #conf.d は今後、ホストマシン上で変更するだけで対応する箇所を操作するだけで済みます。

以上がDocker が nginx バインディング設定ファイルの実行に失敗する場合の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート