今日は某クラウド向け環境構築のために、おそらく人生で初めて自分用のDockerfileを書いてみて、CLIなアプリの動作環境をDockerで構築することの素晴らしさを理解した。今までは、Dockerで動かすことを前提としている、他者のアプリを実行するときのみDockerを用いていた。Dockerでの開発環境・動作環境の構築って、素早く壊しては作れるし可搬性があるし、なんて楽なんだ〜!! 世間より数年遅れで気づいた自分に呆れるが、調べながら実際に手を動かすことによってやっとそれを強く理解したのだから仕方がない。
というわけで、手元の持ち歩きパソコンのM1 MacでもDocker環境を整えたくなり、最新の情報を調べてやってみたというのが今回のメモである。
macOS (Apple Silicon) でDockerする場合、巷では今「Rancher Desktop by SUSE」がナウいらしい。昔から「Docker Desktop」が有名だがここでは前者を選択だ。理由は省略。
macOS (Apple Silicon) 環境へのインストール手順は次の通り。
~/.bashrc
(bashの場合) に次の数行を追加しておく (私はこのファイルを複数の環境で使い回しているので分岐を加えている)# Rancher Desktop
if [ -d "$HOME/.rd/bin" ] ; then
export PATH="$HOME/.rd/bin:$PATH"
fi
~/.bashrc
を読み直したターミナルでdocker version
してみると、Dockerが利用可能になっていることが確認できる$ docker version
Client:
Version: 24.0.7-rd
API version: 1.42 (downgraded from 1.43)
Go version: go1.20.10
Git commit: 72ffacf
Built: Wed Nov 1 18:41:50 2023
OS/Arch: darwin/arm64
Context: rancher-desktop
Server:
Engine:
Version: 23.0.6
API version: 1.42 (minimum version 1.12)
Go version: go1.20.11
Git commit: 9dbdbd4b6d7681bd18c897a6ba0376073c2a72ff
Built: Fri Nov 17 20:59:57 2023
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: v1.7.2
GitCommit: 0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version: 1.1.12
GitCommit: 51d5e94601ceffbbd85688df1c928ecccbfa4685
docker-init:
Version: 0.19.0
GitCommit:
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
478afc919002: Pull complete
Digest: sha256:d000bc569937abbe195e20322a0bde6b2922d805332fd6d8a68b19f524b7d21d
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
(以下省略)
この「Rancher Desktop by SUSE」はかなり良くできていそうなアプリなので、Ubuntu環境でも使えるかなと調べてみたところ、.debパッケージでのインストールも可能だと分かった。後日やってみよう。