プル イメージ:
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 サイトの他の関連記事を参照してください。