ホームページ  >  記事  >  運用・保守  >  Docker が nginx バインディング設定ファイルの実行に失敗する場合の問題を解決する方法

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

WBOY
WBOY転載
2023-05-17 09:34:05917ブラウズ

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

プル イメージ:

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 までご連絡ください。