Colima で Docker と Docker Compose を使ってみた
Colima は、Dockerコンテナを管理するためのコマンドラインインターフェース(CLI)です。
Colima をセットアップして、docker
コマンドや docker-compose
コマンドを実行してみようと思います。
実行環境
- macOS:
Ventura 13.3.1
- チップ:
Apple M1 Pro
- Homebrew:
4.0.18
インストール
まずは必要なパッケージをインストールしていきます。今回は、Homebrew を利用して、インストールしてきます。
Docker と Docker Compose をインストールする
Docker Desktop などを利用していて、Docker や Docker Compose を使っていた環境だとすでにインストールされている可能性があるので、スキップしてください。
以下のコマンドを実行して、インストールします。
$ brew install docker docker-compose
今回インストールしたバージョンは以下の通りとなりました。
$ docker --version
$ Docker version 23.0.6, build ef23cbc431
$ docker-compose --version
$ Docker Compose version 2.17.3
※ 公式のバイナリからインストールしたい場合は、以下の手順でインストールすることができます。
Colima をインストールする
次のコマンドを実行してColimaをインストールできます。インストールの詳細については公式ドキュメントを確認ください。
$ brew install colima
今回インストールしたバージョンは以下の通りとなりました。
$ colima --version
colima version 0.5.4
Colimaを起動する
Colima のインストールが完了したので、起動してみます。
$ colima start
特にオプションをつけずに起動した際は、デフォルト設定で起動されます。
主に利用しそうなオプションには以下のようなものがあり、必要に応じて設定して起動することができます。
Flag | Description | Default |
---|---|---|
-c, --cpu | CPUの数 | 2 |
-d, --disk | GiB単位のディスク容量 | 60 |
-e, --edit | 起動前に構成ファイルを編集します。 | false |
--env | VMの環境変数 | [] |
-h, --help | ヘルプ | N/A |
-m, --memory | GiB単位のメモリ | 2 |
-V, --mount | マウントするディレクトリ。書き込み可能の場合は接尾辞「:w」を付けます。 | [] |
-r, --runtime | コンテナランタイム(containerd, docker) | "docker" |
-s, --ssh-agent | VMにSSHエージェントを転送します。 | false |
なお、以下のコマンドでオプションを確認することができます。
$ colima start --help
docker コマンドを実行してみる
Colima の起動ができたら、docker
コマンドを実行できるようになるので、実行してみます。
docker run -d -p 8080:80 nginx
このコマンドは、nginx のイメージを起動して、localhost:8080 をコンテナの 80 ポートにマッピングするコマンドです。
nginx のイメージがローカルにない場合は、イメージを pull してから起動されます。
docker
コマンドでイメージやコンテナを確認してみます。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6405d9b26faf 12 days ago 135MB
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41697e0c736f nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp adoring_gauss
特に問題なく docker
コマンドを実行することができました。
docker compose コマンドを実行してみる
docker
が実行できたので、続いて docker compose
コマンドを実行してみます。
まずは、設定ファイルを以下の通り作成し、カレンドディレクトリに保存します。
postgres コンテナとDB接続確認のために Adminerコンテナを起動します。
version: '3'
services:
db:
image: postgres
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
db_data:
起動中のコンテナやポートが重複していないことを確認して、以下のコマンドを実行して起動します。
docker-compose up -d
起動完了後、ブラウザにて確認してみます。
問題なく起動できていそうですね。
コマンドで起動しているコンテナやボリュームを確認してみます。
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3b6e3e8b010 postgres "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 5432/tcp temp-db-1
653ee34374b8 adminer "entrypoint.sh php -…" 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp temp-adminer-1
$ docker volume ls
DRIVER VOLUME NAME
local temp_db_data
想定していた動きになっているようでした🙌
さいごに
Colima を使って、Docker, Docker Compose コマンドを実際に試してみました。これまで多く使っていた Docker Desktopとシンプルな構成だと遜色なく利用できると感じました。
セットアップも簡単にできますので、GUI はなくてもいいかな、Docker Desktop から乗り換えたい!など考えている人の選択肢の一つにいかがでしょうか。
参考
Discussion