homebrewを使ってMacにDocker環境を構築する方法を解説します。
Dockerがあると、Mac上にdockerコンテナを作れるようになり、別の環境と合わせた開発やWindows上で動作するプログラムを作ることも可能です。
本記事はDocker Desktopではなく、コマンドラインでのみ使えるDockerのインストール方法を解説します。
実施時の環境情報
- macOS:14.6
homebrewでのDockerインストール方法
以下の流れで解説します。すでにhomebrewを使える環境であれば、2から始めてください。
homebrewのインストール
まずはhomebrewをインストールしましょう。homebrewはDebian系のaptやRedhat系yumと同様にmacで使えるパッケージ管理マネージャーです。
コマンドでインストールすることも可能ですが、最新版を取得したい場合は最新版の.pkgからインストールすることをおすすめします。
.pkgをダウンロードしてインストール
インストールの完了まできたら、初期設定とインストールの確認をしましょう。
1 2 3 4 5 6 7 |
# Homebrewの環境設定をシェルに適用 $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile $ source ~/.bash_profile # 今回インストールした4.4.11が表示されるか確認 $ brew -v Homebrew 4.4.11 |
コマンドでのhomebrewのインストール
1 2 3 4 5 6 |
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $ which brew /usr/local/bin/brew $ brew -v Homebrew 3.4.0 Homebrew/homebrew-core (git revision 708ad69a3b; last commit 2022-03-02) |
ご覧の通り、コマンドでインストールすると.pkgでのインストールよりも古いバージョンがインストールされます。最新版を使えるように.pkgでのインストールがおすすめです。
Dockerのインストール
brewがインストールできたらDockerのインストールに進みましょう。注意点としてinstall時に--caskとつけるとDesktop版のDockerがインストールされてしまいます。
1 2 3 4 |
$ brew install docker $ which docker /opt/homebrew/bin/docker |
Dockerのインストールが完了しました。ただしこの状態でDockerコマンドを実行してもdocker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
(Dockerデーモンと通信できません)というエラーが出て、ほとんどのDockerコマンドを使えません。
これはDockerをMac上では単純に動かせないために出るエラーです。詳しい理由は割愛しますが、簡単にいうとMacにはLinuxカーネルがないためです。
Colimaを使ってLinuxベースのDocker環境を構築する
解決策の一つがColimaを使って、Linuxカーネル的なものをMac上にビルドし、Dockerデーモンとの通信を実現する方法です。
Docker Desktopを使う方法でも良いのですが、CLIのみで解決したい自分はこの方法を選びます。
1 2 |
$ brew install colima $ colima start |
上記でcolima起動後であればDockerコマンドを使えるようになります。
Dockerコマンドの使用例
ようやくDockerコマンドを使えるようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 478afc919002: Pull complete Digest: sha256:305243c734571da2d100c8c8b3c3167a098cab6049c9a5b066b6021a60fcb966 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. (arm64v8) 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/ |
せっかくなのでDockerコマンドを使ってUbuntuのコンテナを構築し、中でpython3を使えるようにしたいと思います。
1 2 3 4 5 |
$ docker run --name my-ubuntu -it ubuntu /bin/bash #my-ubuntuコンテナの中に入る $ apt update -y $ apt install python3 |
上記でpython3のインストールが可能です。
またコンテナに入りたい時は docker start -i my-ubuntu
で入ってください。