コンテナについて
コンテナとは、実行環境が分離されたユーザ空間のことサーバの仮想化技術には以下の方式がある。コンテナ型仮想化の技術について調べてみた。・VM型仮想化VMwareやAmazonEC2等のように、ハードウェアやファームウェアまでまとめて仮想化する技術。そのため、ホストマシン上で別のOSのゲストマシンが動かせる。・コンテナ型仮想化アプリケーションが動く動作環境(実行環境)をそのまま仮想化(イメージ化)する技術で、開発環境で作成したマシンを本番環境でデプロイする際に、動作できない等の問題を解決するために作られた技術。ハードウェアやファームウェアまでは丸ごと仮想化しないため、ゲストOSはホストマシンと同じである必要がある。Docker for WindowsでもHyper-V上にLinuxを立て、そのマシン上でコンテナを作成している。コンテナにおけるセキュリティについてコンテナに関するセキュリティは以下のようなものがある。・カーネルのセキュリティコンテナでは、ホストのカーネルを共用する。以下の機能に脆弱性がある場合は、セキュリティの問題になる場合がある。NamespacesLinuxのnamespaceは、リソースを区切って、 あたかもそれだけしか存在しないように見せるためのもの。具体的には、mount、UTS、IPC、PID、ネットワークおよびユーザの6つが対象となるリソース。各プロセスのnamespaceは、/proc/プロセスID/ns/ を以下のように見ることで確認できる。cgroupscgroups (control groups) は、プロセスグループのリソース(CPU、メモリ、ディスクI/Oなど)の利用を制限・隔離するLinuxカーネルの機能。・Dockerデーモンデーモンを操作できるユーザの制限(APIの公開など)信頼できるイメージを利用する・コンテナの設定rootユーザを避けるセキュリティチェックツールコンテナの設定に関してチェックするようなツールも公開されている。https://github.com/docker/docker-bench-security参考にしたサイトhttps://rest-term.com/archives/3287/http://www.usupi.org/sysad/260.htmlhttps://www.kaitoy.xyz/2016/07/31/docker-for-windows/http://www.atmarkit.co.jp/ait/articles/1609/01/news053.htmlhttp://www.atmarkit.co.jp/ait/articles/1610/24/news014.html