【3分でできる!】MacでDocker環境構築🐳〜Docker Desktopは使わない〜
どうも、ちゃんなるです🐻
今回は、MacでDocker環境をサクッと構築します👍
※Docker Desktopは使いません。
今回やりたいこと
Macの上でDockerを動かすこと。
DockerやDocker Composeといったコマンドを好き放題使うことです👍
$ docker xxx
実はDockerはLinux上でしか動きません。なので、Mac上でLinux(Ubuntu)を動かし、その中にDockerを導入します🐳
実現方法
Multipassというツールを使います。
インストール方法はこちらをご参照ください。インストーラを使う方法、Homebrewを使う方法の2通りあるので、お好きな方をどうぞ👍
※インストール方法の説明は省略します。
実を言うとDockerが動く状態のUbuntuイメージが用意されており、コマンド一発で環境構築できます👏笑
Macのターミナルで下記を実行します。
$ multipass launch docker --name docker-ubuntu --mem 8G --disk 40G --cpus 2
このコマンドでは、Docker入りのUbuntu22.04環境をdocker-ubuntuという名前で用意し、メモリを8GB、ディスク容量を40GB、CPU数を2つ割り当てます。命名や割り当てる数値はどうぞよしなに✋
起動した環境は下記コマンドでログインできます。
$ multipass shell docker-ubuntu
はい、こっからもう先はDockerが使えます👏
おまけ〜DockerでNginxコンテナ立ち上げてブラウザからアクセスしてみる〜
Ubuntu内でdocker runコマンドを実行し、Nginxコンテナを立ち上げてみましょう。
ubuntu:~$ docker run --name nginx -d -p 8080:80 nginx:1.23 Unable to find image 'nginx:1.23' locally 1.23: Pulling from library/nginx 4b7f5b2a3113: Pull complete 3c419414ca9e: Pull complete (以下省略...)
docker psでコンテナを確認すると、Ubuntuの8080番ポートでNginxへアクセスできるようです。(詳細は省く)
ubuntu:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c054a13eac1a nginx:1.23 "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx
ブラウザからアクセスしてみましょう。アクセスURLはhttp://<UbuntuのIPアドレス>:8080
です。確認するには、Mac側(Ubuntu内ではない)で下記を実行してみましょう。
$ multipass info docker-ubuntu Name: docker-ubuntu State: Running IPv4: <ここに表示されるやつがUbuntuのIPアドレス> (以降省略...)
アクセスするとNginxの画面が表示され、きちんとNginxのDockerコンテナが動かせていることがわかります👏
まとめと課題
- ⭕️:Multipassを使えば、Linux(Ubuntu)環境やDocker環境がサクッと作れる
- ❌:サクッと作れるが故に、Linux(Ubuntu)やDockerの仕組み自体を知らないままDockerを使うことになる
今回の目的は「Dockerを動かす」だったので一旦OK。ですが、仕組みを理解するべく学び続けます。また別の記事で紹介させていただきますね🙌
環境
実装や動作確認の際に使ったツールたちです。 PCはM1 MacBook Proです。
技術 | バージョン |
---|---|
OS | macOS Ventura Version 13.1 |
VM | multipass version 1.10.1+mac |