Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Design 11月号第1特集「理想のコンテナイメージを作る」を振り返る 第3章

Software Design 11月号第1特集「理想のコンテナイメージを作る」を振り返る 第3章

Software Design 11月号の第1特集「理想のコンテナイメージを作る Dockerfileのベストプラクティス」の全5章のうち3章を弊社のエンジニアが担当しました。今回は各担当者による担当部分の解説セッションと、それをベースに参加者のみなさんからのご質問やご意見をいただきながらディスカッションを行いたいと思います。
「理想のコンテナイメージとはどのようなものなのか」はそれぞれの立場や関心事によって変わって来るかと思います。今回の勉強会では理想像を見つけるのではなく、多面的に理想的なコンテナイメージとはどのようなものかを考えられる視点を学んでいただけます。

とことんDevOps

November 08, 2023
Tweet

More Decks by とことんDevOps

Other Decks in Technology

Transcript

  1. ベースイメージとは 3 FROM ubuntu:22.04 ← ubuntu:22.04のイメージをベースにする RUN apt update ←

    apt updateを実行 RUN apt instal -y hello ← apt install –y helloを実行 COPY example.txt /work/ ← example.txtを/workディレクトリへコピー Dockerfileの例 Ubuntu:22.04 apt update apt install –y hello COPY example.txt ビルド ベースイメージ 独自の変更レイヤー ビルドされたイメージ ビルドの出発点として、ここに何を選択するかが問題
  2. 信頼できるイメージを使う • 公開されているコンテナであれば、どのようなものでもベースにできる。 • DockerHubなどの公開レジストリからイメージを取得するのが基本。 • だがDockerHubは、誰でも自由にイメージをアップロードできる。 • ただし、そのイメージは本当に使っても大丈夫なの? •

    メンテナンスされてる? • セキュリティ対策は? • マルウェアが仕込まれてたりしない? • どこの誰が作ったかもわからないイメージを使うのは危険。 • マルウェアのインストールを隠蔽した、罠イメージを作ることも可能。 • 信頼できるイメージを厳選して使おう。 4
  3. 信頼できるイメージとは • ベースイメージの中身を精査できれば理想だが、そんなコストは払えない。 • つまり究極的には、信頼できる人が作ったイメージかどうかで判断。 • じゃあ信頼できる人って誰? • DockerHubのTrusted Contentなら安心。

    • Docker Official Image • Verified Publisher • Sponsored OSS • ここにリストされているイメージを出発点にすることをまず検討しよう。 • UbuntuやAlpineといったOS • MySQLやPostgreSQLなどのミドルウェア • GoやPythonといった言語などのオフィシャルなイメージが存在する • 用途に合わせてこれらの中から選ぼう 5