初めに
Dockerを使えば環境を隔離した状態にできたり環境の差をなくせるらしいので今回は初めてDockerを使ってみました。
開発環境は以下のとおりです
- macOS Tahoe
- VScode
Docker Desktopを無料で使う条件
・従業員250人未満かつ年間収益1,000万ドル以下の中小企業
・教育機関
・非営利のオープンソースプロジェクト
Docker Desktopは有料になったそうですがDocker自体は無料ならしいです。
Dockerとは
Dockerコンテナイメージを使うことで仮装環境ほど重くなく干渉しないようにできるらしいです。公式は以下のように言っています。
Dockerコンテナイメージは、コード、ランタイム、システムツール、システムライブラリ、設定など、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェアパッケージです。
Docker Desktopをインストール
Dockerにはデスクトップ版があるらしいので今回はデスクトップ版を入れていきます。
Docker Desktopをダウンロードするには、まずOSを選択します。
私はApple Silicon搭載のMacなので、「Mac版 Apple Silicon」を選びました。

Docker Desktopを入れれば管理をGUI上で行えますが今回は環境構築をVScode上で行うので一旦VScodeに移ります。
VscodeのDockerをインストール

Dockerを入れるとVscode上でDockerを編集することができます。

Dev Containersを入れると後々Dockerの環境構築で役立つので入れておきましょう
インストールが完了したらDocker構築用のファイルを作成していきます。
project(フォルダ)
.devcontainer(フォルダ)
devcontainer.json(ファイル)
src(フォルダ)
devcontainer.json
devcontainer.jsonの書き方は以下のとおりです
{
"name": "Dockerの名前",
// dockerイメージ
"image": "mcr.microsoft.com/devcontainers/base:jammy",//Ubuntu 22.04 (Jammy Jellyfish)ベースに設定
"features": {//プログラミング言語設定場所
"ghcr.io/devcontainers/features/python:1": {
"version": "latest"
}
},
"customizations": {
// カスタマイズ
"vscode": {
"extensions": [
"ms-python.python",//pythonの拡張機能
"oderwat.indent-rainbow",//インデントを可視化する拡張機能
],
"settings": {}
}
},
// 起動時の実行コマンド
"postCreateCommand": "pip install -r requirements.txt"
}
VScodeの拡張について

このように拡張機能の設定マークから拡張機能IDをコピーしてextensionsの中に貼り付ければDockerにその拡張機能が反映されるようになります。
プログラミング言語の追加方法は以下のように入力すればdockerで使えるようになります。
"ghcr.io/devcontainers/features/プログラミング言語:1": {
"version": "latest"
}
起動時のコマンドについて
外部ライブラリーを自分はrequirements.txtで管理しているのでDocker使用時に自動的にインストールされるようにしました。
"postCreateCommand": "pip install -r requirements.txt"
CPU,メモリ使用率確認方法

みたいコンテナを選択してView container usageを選択します。
そうすると以下のような画面が表示されてCPUを何%使用しているのかメモリをどれぐらい使っているのかが一目でわかります。

下にあるRAMの使用容量などの場所をクリックするとメモリ使用率やCPU使用率が見えるためメモリをめっちゃ食っているなと思ったり本番環境のスペックに合わしたい人流行ってみたらいいのではないでしょうか?

まとめ
初めてのDocker体験でした。
- Dockerで環境を隔離できることが便利
- VScodeと拡張機能を使えば開発環境の管理も簡単
今回学んだ環境で、今後はいろいろなプログラムを試して「HelloWorld」してみたいと思います。