アプリケーションをコンテナ化するためのいくつかのベストプラクティスがあります。 それらを正しく理解して適用することにより、コンテナアプリケーションをより安全に、最適に、そして効率的に管理/操作できるようになります。 サンプルアプリケーションのDockerfile最適化の課題を通じてベストプラクティスを学びます。
学習リソース
これらのリンクでは、Dockerコンテナーを構築するためのベストプラクティスを説明しています。 まず、タスクに取り組む前に読んでください。
- Best practices for writing Dockerfiles by Docker
- Image-building best practices by Docker
- Docker development best practices by Docker
- Best practices for building containers by Google
- Best practices writing a Dockerfile by Bitnami
- Top 20 Dockerfile best practices
課題
こちらのGithubリポジトリにアクセスし、PythonまたはGoで記述されたアプリケーションのDockerfileにベストプラクティスと最適化を適用します。 詳細については、リポジトリのREADMEも参照してください。
課題は次のgitコマンドで入手できます。
1 |
git clone https://github.com/AvintonCode/docker-handson.git |
1. イメージのサイズを小さくする
イメージのサイズは1GBを超えています。
2. コンテナプロセスにrootユーザー以外を使用する
rootユーザでコンテナのプロセスが実行されています。
3. コンテナの脆弱性を解消する
コンテナに脆弱性のあるパッケージが含まれています。
注: 修正が利用可能ではない脆弱性は無視できます。
4. ビルド時間の改善
アプリケーションに不要なDockerfileやREADMEまでビルド時にコピーされています。
キャッシュを上手く使用できておらず、pip3 install
またはgo mod download
が毎回実行される場合があります。
まとめ
Dockerコンテナにベストプラクティスを適用して、快適なコンテナ開発&運用を行いましょう!
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?