
Docker を実行している Ubuntu ホスト マシンがあるとします。
FROM
このホストには、ubuntu、alpine、java:8 など、さまざまなベースイメージ () を使用する実行中のコンテナーが多数含まれています。
このホストには、手作業で作成された画像もいくつか含まれています。
現在、すべてのコンテナを停止して削除し、再度作成することができます。どのイメージにもデータは保存されていません (コンテナをコミットしません)。したがって、データが失われても問題はありません。イメージが同じである限り、サービスを再度起動することも問題にはなりません。
Linux カーネルに影響を及ぼす脆弱性が発見されたと仮定します。
ホスト OS を更新したので、ホストは脆弱性がなくなりました。Docker コンテナはホストのカーネルを使用して実行されますが、それで十分でしょうか? コンテナが脆弱性の影響を受けないようにするために、考慮すべき点や実行すべきアクションは何ですか?
答え1
Docker コンテナはホスト カーネルを使用するため、ホスト カーネルが更新されると、コンテナに問題は発生しなくなります。
ライブラリの問題は別の話です。たとえば、OpenSSL はコンテナとホストで異なる可能性があるライブラリであり、アップグレードする必要があります。
apt-get update && apt-get -q -y upgrade
Dockerfile の先頭にを含めることをお勧めします。そのため、イメージを定期的にビルドする必要があります。
公式イメージを使用する場合は、定期的にプルしてコンテナをアップグレードすることをお勧めします。docker-compose を使用する場合:
docker-compose pull && docker-compose up -d
アップグレードされます。プレーンな docker の場合は、プルを行う必要があります。コンテナーを削除し、同じボリュームを指す新しいコンテナーを作成します。
docker pull image
docker stop containerid && docker rm containerid
docker run image ....
よろしく