Docker for MacでなんでUbuntuが動くのか? [MacOSX]
以前にDocker for Macを入れた際に、Ubuntuが動くのはなぜかと疑問に思っていました。chrootの発展形がコンテナ仮想化とするなら、Macのコンテナ上でLinuxが動くのは妙な話なんじゃないかと。
https://qiita.com/kirikunix/items/33414240b4cacee362da
ここではLinux同士を使っている場合に、ABIという仕組みがあるからある程度は大丈夫なんだよ、という説明でした。しかし、それではMacの説明がつかない。
下のコメント欄にその言及がありました。
これだったらコンテナ仮想化じゃなくて、ハイパーバイザー型と大して違わないやん。ただchroot的なディレクトリの利用はしているかもしれないけど。でも、Mac上のUbuntuは60GBの大きさしかなかった気がするなぁ。Dockerはコンテナ仮想化という認識は変えないといけないかもしれない。
ここを直接読む。
https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment
うわ。最初の最初にすごいこと書いてあったw。
VirtualBox入っとるやんw。というかDockerを上にかぶせる意味あるん?
あ~Docker Toolboxの方なのか。Docker Desktopの前にあったやつみたい。
やっぱハイパーバイザー使っとるわ。他のDockerはコンテナ仮想化かもしれないけど、for Macは純粋なコンテナ仮想化じゃないな。はじめはVirtualBoxを使う気になっていたけれど、DockerがHypervisorであれば使う意味があまりないんじゃないかと思ってきた。というか、macのコンテナを作ろうとしていたから、Linuxを入れるのを前提にしているんじゃどっち使ってもあんまり変わんないかもな。というか、慣れているVirtualBoxの方がいいのかも。
というかMacで開発しようと思ったら、コンテナを使えないとしたら既存の環境を汚すしかないのかとちょっと落胆。それが嫌だからコンテナを使おうと思っていたのに、Dockerのバカぁ。って、DockerでMacのコンテナ使えるかどうか調べてないですが…。
https://qiita.com/kirikunix/items/33414240b4cacee362da
ここではLinux同士を使っている場合に、ABIという仕組みがあるからある程度は大丈夫なんだよ、という説明でした。しかし、それではMacの説明がつかない。
下のコメント欄にその言及がありました。
https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment HyperKit という仮想化ツールでdockerホストとなるVMを作り、 そいつと /var/run/docker.sock を通してやり取りをする、という仕組みのようです。 macOSにABIを被せているわけではなく、Linuxを別個に立てているのですね
これだったらコンテナ仮想化じゃなくて、ハイパーバイザー型と大して違わないやん。ただchroot的なディレクトリの利用はしているかもしれないけど。でも、Mac上のUbuntuは60GBの大きさしかなかった気がするなぁ。Dockerはコンテナ仮想化という認識は変えないといけないかもしれない。
ここを直接読む。
https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment
うわ。最初の最初にすごいこと書いてあったw。
It also installs VirtualBox.
VirtualBox入っとるやんw。というかDockerを上にかぶせる意味あるん?
あ~Docker Toolboxの方なのか。Docker Desktopの前にあったやつみたい。
Docker Desktop uses HyperKit instead of Virtual Box. Hyperkit is a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.
やっぱハイパーバイザー使っとるわ。他のDockerはコンテナ仮想化かもしれないけど、for Macは純粋なコンテナ仮想化じゃないな。はじめはVirtualBoxを使う気になっていたけれど、DockerがHypervisorであれば使う意味があまりないんじゃないかと思ってきた。というか、macのコンテナを作ろうとしていたから、Linuxを入れるのを前提にしているんじゃどっち使ってもあんまり変わんないかもな。というか、慣れているVirtualBoxの方がいいのかも。
というかMacで開発しようと思ったら、コンテナを使えないとしたら既存の環境を汚すしかないのかとちょっと落胆。それが嫌だからコンテナを使おうと思っていたのに、Dockerのバカぁ。って、DockerでMacのコンテナ使えるかどうか調べてないですが…。
やっとmacOS Catalinaにした。 [MacOSX]
macOS 10.15.2になってからmacOSをアップデートしました。二回もマイナーアップデートしたんだから、あらかた問題は解決されているはず。というか、ずっと前の状態を保つ意味もあまりないので、TimeMachineでバックアップを取って入れてみました。
始めに15分で終わると出ていたんだけど、最終的に終わったのがちょうど一時間後くらいでした。ダウンロードにも時間がかかっているので、一時間強というところでしょうか。結構時間がかかる。最近のアップデートはSSDを使っているので、割と時間がかからなかった印象がありますが、やっぱりOSのアップグレードはそこそこ時間がかかる。まぁ使っているソフトウェアの環境ってのは人によって違いますしね。
LinuxだとかだとOSをクリーンインストールして入れ直しちゃうところですよね。コンテナとかの仮想化でもOSの構築を自動化でやっている場合も多いみたいだし。だけどクライアントOSはそういうわけにはいかないよね。色々データがシステムの中に散らばっちゃってるし。
それとは別に今、ちょっとDocker for Macを入れようかどうか気にしている。VirtualBoxでUbuntuを入れようかとも思ったんだけど、せっかくMacを使っているのだから、そのまま使った方がパフォーマンスも下がらないだろうなと。というか、わりとコンテナじゃない仮想化ってHDDの書き込みにパワーを使ったりしてますしね。それとHDDの容量を最初から規定しないといけないことも多いし。
そういう意味からしてコンテナ仮想化は他人丼的な使い方をしなければ、仮想化としてお手軽かと思うね。ハイパーバイザー型の仮想化も悪いとは思わないけど、完全に本番動作を仮定していない限りは別にmacOSでいいじゃないかと思う。曲がりなりにもUNIXなんだしね。
https://docs.docker.com/docker-for-mac/install/
Docker Desktopって書いてあるけど、Desktopって書いてあるのが気になる。特にGUIは必要ないんだけどなぁ。どうせコンテナの操作はCUIでやるんだし、そこいらの操作はVirtualBoxっぽくGUIでいいと思うんだけど、見た感じそうはなっていない。まぁ仮想環境のセッティングがホストOSに依存する部分が大きいので、そこまで設定に苦労しないからかもしれないけど、GUIはGUIでCUIはCUIで分けたい気もする。
ん?ubuntuとか書いてあるけど、macOSでubuntuのコンテナを動かすってどういうことだ?
ただ単にどのOSでもみんな同じこと書かれてんのかな? そもそもhello-worldってのは環境ってことなのかな?
とりあえず、docker run -it ubuntu bash やってみよ。
uname -a で見たら
macじゃなくLinuxが走っていることはわかる。Ununtuかどうかはわからんけど…。というか、コンテナ仮想化はこういうことできるの? なんかコンテナというプロダクトとしての趣向が違わない? コンテナ仮想化がchrootの発展系として考えるなら、違うOSのコンテナなんて使えないはずなんだけど…。
なんか色々気になるけど、Ubuntuが動くということはわかったわ。にしてもコンテナっていつもrootで始めに入るんだけど、普通のLiunxを使うものとしては気持ち悪すぎる。結局、普通のユーザー作るんやろし。まぁそのうち細かくやっていこうと思います。とりあえずはここまで。
Catalinaを入れてまず気づいたのが、Dockに何か無理矢理入れられている。PodcastとAppleTVが割り込んでいる。どっちも使わなそうだけど一応見てみよう。PodcastとかiTunesとかに入れられていて懐かしいけど、しばらく使っていなかったな。ただコンテンツが貧弱すぎて聞く気にならない。Youtube見てた方がいいなという話になっちゃいそうだな。
TVってアプリケーションは、映画とかの映像をレンタルか買い切りで見ることができるようだ。他の入ったら見放題のサービスよりも割高感はある。正直、これに飛びつく人はあまりいないだろう。とりあえず、TVもPodcastもDockから除いた。いらん、こんなもん。
iPadもあるのでSidecarができそうだけど、あんまり好評とは言えないみたいだしなぁ。後でやるけど、今はまだいいや。Catalina唯一の新機能と言われていたが、本当に他に何かないのかなぁ。
始めに15分で終わると出ていたんだけど、最終的に終わったのがちょうど一時間後くらいでした。ダウンロードにも時間がかかっているので、一時間強というところでしょうか。結構時間がかかる。最近のアップデートはSSDを使っているので、割と時間がかからなかった印象がありますが、やっぱりOSのアップグレードはそこそこ時間がかかる。まぁ使っているソフトウェアの環境ってのは人によって違いますしね。
LinuxだとかだとOSをクリーンインストールして入れ直しちゃうところですよね。コンテナとかの仮想化でもOSの構築を自動化でやっている場合も多いみたいだし。だけどクライアントOSはそういうわけにはいかないよね。色々データがシステムの中に散らばっちゃってるし。
それとは別に今、ちょっとDocker for Macを入れようかどうか気にしている。VirtualBoxでUbuntuを入れようかとも思ったんだけど、せっかくMacを使っているのだから、そのまま使った方がパフォーマンスも下がらないだろうなと。というか、わりとコンテナじゃない仮想化ってHDDの書き込みにパワーを使ったりしてますしね。それとHDDの容量を最初から規定しないといけないことも多いし。
そういう意味からしてコンテナ仮想化は他人丼的な使い方をしなければ、仮想化としてお手軽かと思うね。ハイパーバイザー型の仮想化も悪いとは思わないけど、完全に本番動作を仮定していない限りは別にmacOSでいいじゃないかと思う。曲がりなりにもUNIXなんだしね。
https://docs.docker.com/docker-for-mac/install/
Docker Desktopって書いてあるけど、Desktopって書いてあるのが気になる。特にGUIは必要ないんだけどなぁ。どうせコンテナの操作はCUIでやるんだし、そこいらの操作はVirtualBoxっぽくGUIでいいと思うんだけど、見た感じそうはなっていない。まぁ仮想環境のセッティングがホストOSに依存する部分が大きいので、そこまで設定に苦労しないからかもしれないけど、GUIはGUIでCUIはCUIで分けたい気もする。
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
ん?ubuntuとか書いてあるけど、macOSでubuntuのコンテナを動かすってどういうことだ?
ただ単にどのOSでもみんな同じこと書かれてんのかな? そもそもhello-worldってのは環境ってことなのかな?
とりあえず、docker run -it ubuntu bash やってみよ。
uname -a で見たら
# uname -a
Linux b24ee05811f8 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
macじゃなくLinuxが走っていることはわかる。Ununtuかどうかはわからんけど…。というか、コンテナ仮想化はこういうことできるの? なんかコンテナというプロダクトとしての趣向が違わない? コンテナ仮想化がchrootの発展系として考えるなら、違うOSのコンテナなんて使えないはずなんだけど…。
なんか色々気になるけど、Ubuntuが動くということはわかったわ。にしてもコンテナっていつもrootで始めに入るんだけど、普通のLiunxを使うものとしては気持ち悪すぎる。結局、普通のユーザー作るんやろし。まぁそのうち細かくやっていこうと思います。とりあえずはここまで。
Catalinaを入れてまず気づいたのが、Dockに何か無理矢理入れられている。PodcastとAppleTVが割り込んでいる。どっちも使わなそうだけど一応見てみよう。PodcastとかiTunesとかに入れられていて懐かしいけど、しばらく使っていなかったな。ただコンテンツが貧弱すぎて聞く気にならない。Youtube見てた方がいいなという話になっちゃいそうだな。
TVってアプリケーションは、映画とかの映像をレンタルか買い切りで見ることができるようだ。他の入ったら見放題のサービスよりも割高感はある。正直、これに飛びつく人はあまりいないだろう。とりあえず、TVもPodcastもDockから除いた。いらん、こんなもん。
iPadもあるのでSidecarができそうだけど、あんまり好評とは言えないみたいだしなぁ。後でやるけど、今はまだいいや。Catalina唯一の新機能と言われていたが、本当に他に何かないのかなぁ。
Twitterまとめ投稿 2020/01/21 [Twitter]
carbonhydratRT @M16A_hayabusa: いいか「英霊」というロジックは、イジメで自殺した同級生に対して、イジメた生徒やイジメを放置していた学校側が… 「彼はかけがえのない大切な 仲間でした。本当に残念です」 …と何食わぬ顔で言っている 鬼畜野郎と同じだと思え。 国の失策で…01/20 13:36 carbonhydratRT @miyahancom: 業務改善として入れたOSSは脆弱性が1件でも見つかると、やれ使い続けて大丈夫なのかとか禁止するべきとか言い出すのに、WindowsやIEに脆弱性が数百件見つかろうがゼロデイ攻撃されてようが一切その話題出さないのはなんでなんだぜ?01/20 19:13 carbonhydratRT @jjktkrggrks: 個人的に1つでも該当するなら格安SIMの契約は全力で阻止したい。 https://t.co/zUPkDHHC2n01/20 19:14 carbonhydratRT @yukkuri0762: ←自分が想像する20年前の据え置きゲーム機 →実際の20年前の据え置きゲーム機 https://t.co/lfVzwRZd2901/20 19:14 carbonhydratRT @nonco331: タバスコって美味しいですよね。 https://t.co/eBF39a0VCr01/20 19:19 carbonhydratRT @9NZ7hagej: 最近の人類は自然に反してるとか言い始めたら大体これ https://t.co/T864eOPqRG01/20 19:20 carbonhydratRT @dameningen1gou: バブルの頃に「日本は経済的に豊かになったが大切なものを失った」としたり顔で言ってた人が結構いたと思うんだけど、今は「日本は貧しくなった中国に追い抜かれた後進国だもうダメだ」と騒ぐ人ばかりで「これでバブル期に失ったものを取り戻せる精神的に豊…01/20 21:02 carbonhydratRT @OGmk23797: 被虐待児童を児童相談所に通報する場合、冒頭で、 『通告です』 と明言すること。 これが死活的に重要だそうだ。 通報者から『通告』の一言があると、その通話内容は録音され、児童相談所もすぐ動ける。 『相談』や『連絡』等と言われてしまうと児童相談…01/20 21:02 carbonhydratRT @Rubisco_TCA: 医大で女性は一律80点マイナスがあまりにも心にグサグサ刺さりすぎてしんどい。というのも、私の周りに女性で多浪して医学部医学科を目指して、結局医学科に行けなかったって人が沢山いるから。あの人たちは正当に試験されてダメだったのじゃなく差別で行けなか…01/20 21:03 carbonhydratRT @suzuki_kenya: タピオカミルクティー、実際によく飲んでいる方々から「あれはオシャレアイテムなどではない、小腹が空いた時や疲労時に瞬時に糖と炭水化物を摂取でき、加えて片手で飲めるので犬の散歩や移動中などにも便利、しかもおいしい、ヴイダーインとかの更なる進化系」…01/20 21:03 carbonhydratRT @myonyomu: こういうGolangが雑に和訳されてるの大好き https://t.co/Q18uUJMYGs01/20 21:07 carbonhydratRT @dong_po_rou: 最後のセンター試験、日本史Bの会話文が最高でした。大学改革に対する出題者の叫びのように思えてならない。 https://t.co/BviJCL5rvv01/20 21:08 carbonhydratRT @mt3678mt: とにかく安倍首相を守り切ればその先には官僚としての栄達が待っている。そう思えば、恥知らずと罵られようとも気にしないのだろう。これでは国家は劣化するばかりだ。その先鞭をつけた佐川宣寿元国税庁長官の罪は非常に重い。01/20 21:09 carbonhydratRT @tadashi_ohta: スマホ画面割れ防止コーティングの実演販売をしてたお姉さん、僕が胸ポケットにスマホを入れているを見て「電磁波が体に悪影響を及ぼします! コーティングをすれば悪い電磁波も出なくなります!」と勧めてきたけど断った。コーティングで電磁波が出なくなった…01/20 21:10 carbonhydratRT @Simon_Sin: 『医学部入試「差別あった」 聖マリアンナ医大の第三者委』 コレに「女性や浪人生は勤務期間が短いので合理的」とか抜かしてたヤツがいたけどじゃあそれを募集要項に書けってことですよ。合理的ならそう書け。書けねえならやるな。 https://t.co/N…01/20 21:13 carbonhydrat『Laravelは何でできているのか?調べようとした。』とうふめんたらー絶賛頻尿中|https://t.co/pEgyzG14AE01/20 21:22
2020-01-21 05:01
コメント(0)