LoginSignup
5
8

More than 3 years have passed since last update.

Dockerについて改めて整理してみた(2019年版)

Last updated at Posted at 2019-01-11

Docker 2019年

4年くらい前にガッツリ構築を担当したDocker。最近はAWSやAzure案件が中心でコンテナから離れていたのですが、久しぶりにいろいろややこしくなっているDockerについて整理してみました。

※Windows周辺のサービス名称は適当です。全体の流れがわかればと言うことで概要です。
※2019年12月末に少し更新しました。

Docker の流れ

Dockerのリリースから最近までの大きな流れ 

[1] Linux で Docker がリリースされる 2013
[2] Docker FreeBSD版 がリリースされる 2016
[3] Docker for Windows がリリースされる 2016
[4] Docker for Mac がリリースされる 2016
[5] Windows Server 2016 が Docker を正式サポート 2016
[6] Ubuntu on WSL (Windows Subsystem for Linux) で Dockerが動作 2018
[7] Solaris が Docker をサポート予定
[8] Docker on WSL2

Docker の分類

[1] Docker

Linuxネイティブの元祖Docker
Linux kernelを利用したオリジナルのDocker
Linuxコンテナ機能を提供

[2] Docker (FreeBSD)

FreeBSD上で動作するDocker
FreeBSDのLinuxバイナリ互換機能を利用して、Linuxコンテナ機能を提供
FreeBSDで実行されたLinuxプロセスがコンテナとして隔離され実行される
Linuxバイナリ互換機能有効化とファイルシステムとしてZFSの利用が必須
提供されているDockerのバージョンは古め。

[3] Docker for Windows

Windows上で動作するDocker
Linuxエミュレーション
Linuxの仮想マシンが動作し、Linux kernelと共にLinuxコンテナ機能を提供
Windowsの文字コードやOSの仕様に引っ張られ、\(バックスラッシュ)、半角スペース前後などの文字に関連した固有のエラーが昔はよく出た(今も?)ので注意が必要。

[4] Docker for MacOSX

MacOSX上で動作するDocker
Linuxエミュレーション
Linuxの仮想マシンが動作し、Linux kernelと共にLinuxコンテナ機能を提供

[5] Docker Container Service (Windows Server 2016)

Windowsネイティブ
Windows向けに作られたDocker。LinuxコンテナをWindows上で動作させるのではなく、WindowsのプロセスをDockerコンテナとして提供するサービス。動作するのはWindowsコンテナ。つまり、IISのコンテナなどを作成し、稼働させることができる。

[6] Docker on Ubuntu on Windows (Windows Subsystem for Linux)

Linuxネイティブ
WindowsOS上でLinuxコンテナ機能を提供。Windows Subsystem for LinuxがプロセスをLinuxのシステムコールをリアルタイムでNTカーネルのシステムコールへ変換し、NT Kernelに渡す。これにより、NTカーネル上でLinuxのDockerが動作し、Linuxプロセスがネイティブ動作する。

[7] Docker (Solaris)

次期Solarisでサポート予定と発表されてから4年くらい経っているようですが、動きはあまり見えません。Solaris Zone(Solarisコンテナ)をDockerと統合するようです。詳細は不明。(2019年12月更新)

Docker coming to Oracle Solaris
https://blogs.oracle.com/solaris/docker-coming-to-oracle-solaris

[8] Docker on WSL2

Windows上でエミュレートではなくネイティブLinux環境を提供するWSLの次世代バージョンであるWSL2がMicrosoftから発表されました。Windows10上の特殊な小さなVM上で完全なLinux Kernelを搭載するためサポートできないシステムコールがなくなり、今まで以上に互換性が向上するようです。

Docker社はWSL2に最適化した次のバージョンのDocker Desktopをリリースし、Kuberntesをサポートするようです。今までのバージョンではHyper-V上で構築したLinux上で動作していました。

関連する技術

chroot
FreeBSD - Jail
Solaris Zone (旧Solarisコンテナ)
Redhat Linux - OpenVZ

以上、非常にややこしいDockerについてまとめてみました。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8