MacにDockerをインストールしてzshのコマンド補完を設定する

開発環境・ツール
スポンサーリンク

プログラミングの本のサンプルコードを動かすのに、Dockerを使ったものも結構見かけるようになりました。プレーンなコードで動く環境ばかりでも無いのですし、「時代はの流れだよな」という面もあるので、この期にDockerに触れていこうと思います。

ここでは、MacにDockerをインストールする方法と、ついでにコマンド補完の設定までまとめておこうと思います。

スポンサーリンク

MacにDockerをインストールする

MacにDockerをインストールするには、公式サイト(https://www.docker.com/)からDocker Desktop for Macをダウンロードして、インストールするだけです。

homebrewを使ってもDockerはインストールすることはできるようですが、全ての機能をインストールするものでは無いという話もあるので、公式サイトのものインストールする方が良いでしょう。

このページからだと、「Get started」をクリックし、「Docker Desktop」のページに移動し、「Download for Mac」 をクリックして「Docker hub」のページに移動して、そこから Docker.dmg ファイルをダウンロードします。

公式サイト上部のメニューのProductsのところからもダウンロードサイトへ移動することができるので、いくつか入り口がありますが、どこからでも同じです。

インストールは、ダウンロードした Docker.dmg ファイルをダブルクリックするだけです。通常の他のアプリと同様の方法ですから難しく無いでしょう。インストールできたら、アプリケーションフォルダに移動させるだけです。途中、パスワードを求められたり、最初の起動時にセキュリティを問われることがありますが、このあたりはどのアプリのインストールでも同じですね。

このあたりは、公式サイトのドキュメントも参考にしてください。アンインストール方法も書いています。

Install Docker Desktop on Mac
How to install Docker Desktop on Mac

Dockerを起動すると、Macの画面上部にクジラのアイコンが表示されます。

クリックするとメニューが開いて、動いている時は一番上のところに緑色の印で表示されます。

preferencesをクリックすると、Docker Desktop が起動して各種の設定ができますが、現時点では特に何も設定することは無いでしょう。

これで、ターミナルからDockerのコマンドを利用して、操作できるようになるのですが、Dockerコマンドは各種あって入力に手間がかかるのでコマンド補完ができるように設定します。

スポンサーリンク

ターミナルシェルのzshのコマンド補完を設定

ターミナルからコマンドを入力して、tabキーを押すとコマンドの補完ができるのですが、このままではDockerコマンドの補完はできません。

ドキュメントの記載に、コマンド補完の設定方法はあります。

Get started with Docker Desktop for Mac
Getting Started

ここで説明されているのはbashとzshでの設定方法です。

現在のMacのターミナルはzshが標準とされていますので、そちらで行わないと行けません。

bashを使っている人はそれに従えば良いと思うのですが、この公式ドキュメントのzshの方法のままでは、Macの標準のzshでは上手く行かない面もあるようです。(homebrewでzshをインストールして使っている場合の方法なのかなと思ったりしています)

そこで、ここでは公式サイトの方法も参考にしながら、Macの標準のzshを使っている場合についての設定方法を見ていこうと思います。

公式ドキュメントの方法を補足する形でのコマンド補完の設定

まずターミナルを起動して、ドキュメントにもあるように次のコマンドを実行して、インストールしたDockerアプリの中にあるzsh用の補完スクリプトのシンボリックリンクを作成します。

etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker
ln -s $etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose

ドキュメントにはここまでしか書かれていません。

これに続けて、ターミナルなどから、.zshrc ファイルを開きます。次のように記述して、ターミナル起動時に補完が読み込まれるように設定します。

fpath=(/usr/local/share/zsh/site-functions $fpath)
zstyle ':completion:*:*:docker:*' option-stacking yes
zstyle ':completion:*:*:docker-*:*' option-stacking yes
autoload -Uz compinit && compinit -i

詳細は省略しますが、順に、補完スクリプトへのパス、zstyleは補完の制御処理、autoloadはターミナル起動時にこれらを自動で読み込むための記述です。

この上記のような記述が無いので、公式ドキュメントのzshのコマンド補完が上手く行かないこともあるのでは無いでしょうか。

記述したら、保存してターミナルを再起動します。

これで、Dockerコマンドをターミナルで利用した時に、tabキーを押せば補完が効くようになるはずです。

補完スクリプトを保存するディレクトリを作成して設定する方法

上の方法と似たような形ですが、Homeディレクトリの直下に、補完スクリプトを保存するディレクトリを作成して設定する方法をまとめておきます。

まず、ターミナルを起動して、補完スクリプトを保存するディレクトリを次のように作成します。

mkdir -p ~/.zsh/completion

次に、インストールしたDockerアプリの中にあるzsh用の補完スクリプトのシンボリックリンクを、先ほど作ったディレクトリの中に作成します。次のコマンドをターミナルで実行します。

etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.zsh-completion ~/.zsh/completion/_docker
ln -s $etc/docker-compose.zsh-completion ~/.zsh/completion/_docker-compose

シンボリックリンクの記述が、先ほどと違うこと以外は同じ操作です。

次に、.zshrc ファイルを開いて、次のように記述して、ターミナル起動時に補完が読み込まれるようにします。ファイルパスが上と違う以外は同じ記述です。

fpath=(~/.zsh/completion $fpath)
zstyle ':completion:*:*:docker:*' option-stacking yes
zstyle ':completion:*:*:docker-*:*' option-stacking yes
autoload -Uz compinit && compinit -i

fpathの記述が違うだけで、他は同じです。

記述したら、保存してターミナルを再起動します。

こちらの方法でも、Dockerコマンドをターミナルで利用した時に、tabキーを押せば補完が効くようになるはずです。どちらのやり方でもいいと思います。

スポンサーリンク

まとめ

ここでは、MacにDockerをインストールする方法をまとめてみました。インストール自体は特に難しいところは無いはずです。

homebrewでのDockerのインストールでは全ての機能が使えるものでは無いという話ですので、公式サイトのものを使いましょう。

ターミナルでのDockerコマンド補完の設定は、自分が使っているシェルによって方法が違うので、確認が必要です。

開発環境・ツール
スポンサーリンク
CodeGraffitiをフォローする

コードグラフィティ ~ とにかく進もうプログラミング入門~
タイトルとURLをコピーしました