Docker の Linux コンテナーの場合、コンテナーかどうかをコンテナーから確認する方法として、/.dockerenv が存在するかどうかを調べるという方法があります。
microsoft/nanoserver のコンテナー (以下の画面は、Windows 10 上の Hyper-V コンテナー) の場合、/.dockerenvの方法は使えませんでした。代わりに、C:\License.txt (コンテナー OS イメージのライセンス条項) を調べる方法が使えるかも。
microsoft/windowsservercore のコンテナーにもありました(以下の画面は、Windows Server 2016 の Windows Server コンテナー)。実は、このファイル、C:\ProgramData\Docker\winfilter\....\Files\Lisense.txt からも存在を確認できます(ファイルの中身はアクセス拒否で見れません)。

Windows Server 2016 だと Windows コンテナー (Windows Server コンテナーと Hyper-V コンテナー) しか動かせず、Linux コンテナーは(現状)動かせませんが、Windows 10 で Docker for Windows は、Linux コンテナー (MobyLinuxVM) と Hyper-V コンテナーを切り替えて使えて楽しいです。
Windows Containers on Windows 10
[URL] https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-10
ところで、Azure Cloud Shell (プレビュー) ってなんとなぁく Docker コンテナーぽいなぁと思いましたが...
やっぱり /.dockerenv ありました。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。