今回は、Docker Desktopの取得からPythonコンテナの起動までを書いていきます。
Dockerとは
DockerとはホストOSのカーネルを共有し、アプリの実行に必要なファイルだけを隔離してパッケージ化したものです。
従来の仮想マシン1よりも圧倒的に軽量で、素早く起動するのが特徴です。
コンテナという考え方
Dockerでは、この隔離された実行環境のことをコンテナと呼びます。
イメージ例:輸送用コンテナ
中身(アプリや設定)がすべて箱詰めされているため、船(OS)の種類を問わず、どこでも同じように動かせるのが最大のメリットです。
Docker Desktopの導入
Docker Desktopのインストール
windowsやmacではDockerを使用するためにDocker Desctopが必要になります。2
公式documentから、自分の環境に合ったインストーラーをダウンロードしてください。(筆者はwindowsを使用しているためこの先windowsでの説明となります)
インストーラーの起動
ダウンロードしたインストーラーを任意の場所において起動します。
windowsの場合、**WSL2(Windows Subsystem for Linux)**に関するチェックボックスが表示される場合があります。基本はチェックを入れたままで大丈夫です。
Docker Desktopの起動
起動後、Sign in画面が表示されます。
Docker Desktopは、個人利用であれば無料(Docker Personal) で利用可能です。
アカウントを持っていない場合や、今すぐ試したい場合は「Skip」などを選択して進めることができます。
以下の画面(ダッシュボード)が表示されれば、準備完了です。
Docker Desktopを使用する上でよく使用するコマンド
ここからは使用できるかの確認を含め、コマンドの確認をしていきます。
コンテナイメージ(設計図)の取得
docker pull [OPTIONS] NAME[:TAG]
Docker Hub3からイメージを取得するコマンドです。
今回はPythonのものを使用します。
また、optionについては、公式ドキュメント(英語)や日本語リファレンスを参照してください。
ただし、学習や個人の開発ではオプションなしで実行することがほとんどなので、まずは docker pull NAME[:TAG]という形だけ覚えておけば問題ないと思います。
イメージの検索
Docker Hubの検索欄でPythonを検索します。
今回は右メニューのDocker Official imageで絞り込んで、pythonと書かれたものを選択してください(下画像の一番目)
Tagの確認
Tagはどのようなバージョンや内容のイメージを使いたいか指定するものです。
imageの名前(今回でいうpython)だけで入力すると自動的にlatestが選ばれるので後述する理由よりタグ指定はしっかりしたほうが良いです。
開発中にどれを使ったらよいか迷った場合は、以下のルールやを参考にしてみてください。
- 「LTS」が付いているものやメジャーなバージョン番号を選ぶ
LTS(Long-Term Support)は長期サポート版のことです。一番安定しているものになります。
また、Pythonなどであれば3.12のように数字がしっかり指定されているものが「安定版」の指標になります。 - 「alpha」「beta」「rc」を避ける
これらは開発途中のテスト版です。予期せぬエラーが起きたりするので初心者のうちは避けた方がいいです。 - 「latest」を過信しない
latestは「最新版」ですが、突然アップデートされて昨日まで使えたものが使えないなんてことが起こります、基本的にはlatestを使用せず、バージョンを指定して使う方がよいです。
コマンドの使用
今回は、pythonのバージョン3.12を取得してみます。
コマンドプロンプトやターミナルを開いて以下のコマンドを入力してください。
(作業ディレクトリはどこでも大丈夫ですが、自分がこのディレクトリで開発をしたい!というものがあればそのディレクトリに移動して実行すると今後良いことが多いかと思います!)
docker pull python:3.12
実行が完了したら、Docker Desktopの Imagesを見てみてください。
画像のようにpythonの3.12があれば成功です。
ローカルに存在するイメージの確認
docker images
上記を入力すると、いまローカルに存在するイメージが一覧で表示されます。
今回はpython:3.12があるはずです。
コンテナの起動
docker run [OPTIONS] IMAGE[:TAG]
dockerのコンテナを起動するコマンドです。
イメージを取得していなくても、pullからしてくれますが、先にpullしておくと実行時の待ち時間がなくなるのでおすすめです。
こちらは以下のようなoptionをよく利用します。-itを入力することでコンテナ内をPCのターミナルを操作しているのと同じ感覚で操作することができるようになります。
| コマンド | 意味 |
|---|---|
| -i | インタラクティブにやり取りをする |
| -t | ターミナルを割り当てる |
| -it | 上記-iと-tを一緒にしたもの |
他のoptionについては公式ドキュメント(英語)や日本語リファレンスを参照してください。
今回は、以下のコマンドを入力してみます。
docker run -it python:3.12
入力すると>>>4とターミナルに表示されるので、以下のように入力してみてください。
print('Hello, World')
Enterを押すとHello, Worldと出力されます。
Docker Desktopの確認
Docker Desktopを見るとImagesは以下のように白かった〇が緑になっています。
docker desktopで〇が緑になっているときは使用されている目安になります。
さらに、Containersを見てみると、Nameが自動でつけられたコンテナが立ち上がっているのがわかります。
コンテナの終了
コンテナから出るためにはexit()またはCtlr + Dを入力してください、コンテナを落とすことができます。
画像は付けませんが再度Containersを確認すると緑だった〇が白になっています。
また、Imagesを確認すると緑〇のままとなっているはずです。
これはコンテナにイメージを使用しており、停止したコンテナがまだ残っているからとなります。
Imagesの〇を白にしたい場合はContainersのゴミ箱(Delete)をクリックしてDelete Foreverを選択してください。
終わりに
今回はDocker DesktopのインストールからPythonコンテナの起動までを確認しました。
次回は、コンテナの停止や削除をコマンドで実行する方法について書けたらと思います。
最後までご覧いただきありがとうございました。





