こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。
Docker自体は色々な環境で利用することが出来ますが、
Windows10 Homeで利用する際は Hyper-Vが利用できないので、 Docker Toolboxを使います。
https://docs.docker.com/toolbox/toolbox_install_windows/
https://github.com/docker/toolbox/releases
Docker Toolboxってどのように動作してるの?
Docker Toolboxですが、
Docker実行する環境として仮想マシン(VM)を使っています。
その仮想マシンはというと、Docker Toolboxと一緒にインストールするVirtualbox上で「default」という名前の仮想マシンとなります。
NICを二つ備えており、一つはNATで外部へ通信するため、もう一つはホストオンリーアダプターでホストOSとのみ通信できるものです。
インストール後できるショートカットやスタートメニューからDocker Toolboxを起動すると、裏でVirtualbox上のVMが立ち上がり、そこへ接続されたターミナルからコンテナ操作ができるというものです。
なお、ホストOSなどからコンテナで展開されたサービスにアクセスするには、ターミナルで表示されるIPアドレス(上記の場合、192.168.99.102)を使います。
そのあたりについては、以下の記事で紹介しているのでください。
defaultってどんな仮想マシンなのよ?
コンテナが動作できるのはわかりますが、単純にdefaultってどんな仮想マシンなんよって気になりますよね。
ということでちょっと調べてみました。
defaultへのアクセスですが、ターミナルソフトから192.168.99.102にsshアクセスします。
で、問題は認証。
ユーザー名とパスワードって何使うんやって謎があります。
正解は、ユーザー名:docker、パスフレーズ:tcuserを使います。
すると、以下のようにdefaultにログインできます。
defaultで使われているLinuxカーネルなどは、以下になります。
Linux default 4.14.154-boot2docker #1 SMP Thu Nov 14 19:19:08 UTC 2019 x86_64 GNU/Linux
docker@default:~$ cat /etc/os-release
NAME=Boot2Docker
VERSION=19.03.5
ID=boot2docker
ID_LIKE=tcl
VERSION_ID=19.03.5
PRETTY_NAME="Boot2Docker 19.03.5 (TCL 10.1)"
ANSI_COLOR="1;34"
HOME_URL="https://github.com/boot2docker/boot2docker"
SUPPORT_URL="https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/"
BUG_REPORT_URL="https://github.com/boot2docker/boot2docker/issues"
ここからdockerコマンドの実行も可能となっています。
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix/zabbix-web-nginx-pgsql centos-latest 0432de70f62f 10 days ago 430MB
dev_nginx version1 58c7c751931d 2 weeks ago 127MB
sample/nginx latest 4cf1a6d017d5 2 weeks ago 321MB
nginx latest 602e111c06b6 4 weeks ago 127MB
zabbix/zabbix-appliance latest 663a9b177b54 3 months ago 383MB
centos latest 470671670cac 4 months ago 237MB
まとめ
つまり、Docker Toolboxではコンテナ実行環境としてLinux(VM)を使っており、Linuxカーネルではバージョン前後に互換性を持たせることを強く意識して作られているので、様々なコンテナが実行できるというものになります。