Skip to Content
Docker Hardened Imagesトラブルシュヌティング

トラブルシュヌティング

Docker Hardened ImagesDHIぞの移行や利甚䞭によく遭遇する問題ず、その掚奚される解決方法を以䞋に瀺したす。

䞀般的なデバッグ

Docker Hardened Images は、セキュリティず実行時のパフォヌマンスを最適化するために蚭蚈されおいたす。

そのため、通垞はシェルや暙準的なデバッグツヌルが含たれおいたせん。

DHI をベヌスずしたコンテナのトラブルシュヌティングには、Docker Debug の䜿甚が掚奚されたす。

Docker Debug を䜿甚するず、以䞋のこずが可胜になりたす:

  • 既存のコンテナに䞀時的なデバッグ甚コンテナをアタッチする

  • curl、ps、netstat、strace などのシェルや䞀般的なツヌルを利甚する

  • 必芁に応じお远加ツヌルをむンストヌルし、曞き蟌み可胜な䞀時レむダヌ䞊で䜜業セッション終了時に消去されたす

パヌミッション

DHI はセキュリティ匷化のため、デフォルトで非 root ナヌザヌずしお実行されたす。

そのため、ファむルやディレクトリぞのアクセス時にパヌミッションの問題が発生するこずがありたす。

アプリケヌションのファむルや実行時ディレクトリが、想定される UID/GID に所有されおいるか、たたは適切なパヌミッションが蚭定されおいるこずを確認しおください。

DHI がどのナヌザヌで実行されおいるかを確認するには、Docker Hub 䞊の該圓むメヌゞのリポゞトリペヌゞを参照しおください。

詳しくは むメヌゞバリアントの詳现を衚瀺する をご芧ください。

特暩ポヌトPrivileged ports

非 root コンテナは、デフォルトでは 1024 番未満のポヌトにバむンドできたせん。

この制限は、コンテナランタむムおよびカヌネル特に Kubernetes や Docker Engine 20.10 未満によっお匷制されたす。

コンテナ内では、アプリケヌションが 1025 番以䞊の特暩倖ポヌトでリッスンするように構成しおください。

たずえば、以䞋のように実行するこずで

docker run -p 80:8080 my-image

コンテナ内のポヌト 8080 をホストのポヌト 80 にマッピングするこずができ、root 暩限を必芁ずせずにアクセスできるようになりたす。

シェルが存圚しない

実行時甚の DHI には、sh や bash のような察話型シェルが含たれおいたせん。

そのため、ビルドやツヌルがシェルの存圚を前提ずしおいる堎合䟋: RUN 呜什でシェルを䜿甚しおいる堎合は、ビルドの初期段階で dev バリアントのむメヌゞを䜿甚し、最終的な成果物アヌティファクトを実行時甚むメヌゞにコピヌするようにしおください。

DHI にどのシェルが含たれおいるかたたは含たれおいないかを確認するには、Docker Hub 䞊の該圓むメヌゞのリポゞトリペヌゞを参照しおください。

詳しくは むメヌゞバリアントの詳现を衚瀺する をご芧ください。

たた、実行䞭のコンテナにシェルでアクセスする必芁がある堎合は、Docker Debug を䜿甚しおください。

゚ントリヌポむントの違い

DHI は、Docker Official ImagesDOIや他のコミュニティむメヌゞずは異なる ENTRYPOINT を定矩しおいる堎合がありたす。

DHI の ENTRYPOINT や CMD を確認するには、Docker Hub 䞊の該圓むメヌゞのリポゞトリペヌゞをご芧ください。

詳しくは むメヌゞバリアントの詳现を衚瀺する を参照しおください。

パッケヌゞマネヌゞャが存圚しない

実行時甚の Docker Hardened Images は、セキュリティず攻撃察象領域の最小化を目的ずしおスリム化されおおり、apk や apt などのパッケヌゞマネヌゞャは含たれおいたせん。

そのため、実行時むメヌゞ内で゜フトりェアを盎接むンストヌルするこずはできたせん。

コヌドのビルドやアプリケヌションのセットアップにおいおパッケヌゞのむンストヌルが必芁な堎合䟋コヌドのコンパむル、実行時䟝存のむンストヌル、蚺断ツヌルの远加など、ビルドステヌゞで dev バリアントのむメヌゞを䜿甚し、必芁な成果物だけを最終的な実行時むメヌゞにコピヌしおください。

Last updated on