VSCode & Docker DesktopでシンプルなPythonの開発環境を作る

やっと届いた新しいMac！大枚叩いて買ったコイツは出来る限り綺麗なままでいて欲しい...!!
そうなると個人的な開発環境と言えどもやっぱりコンテナが良いわけで、今回はVSCodeのエクステンションであるRemote-Containersを使ってDocker Desktopと組み合わせたシンプルなPythonの開発環境を作ってみます。

本職のエンジニアではないのであまり専門的な内容ではありません。とにかく自分がVSCodeで書いたPythonのコードがサッとコンテナ上で実行できれば御の字、そんな内容です。

使用環境
macOS Catalina ver 10.15.7
Visual Studio Code 1.51.0
Docker Desktop(stable) 2.5.0.0

## Visual Studio CodeとDockerDesktopのインストール

Visual Studio Code
[https://azure.microsoft.com/ja-jp/products/visual-studio-code/](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)

Docker Desktop
[https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop)

## Remote -ContainersをVisualStudioCodeへインストール

VisualStudioCodeの拡張機能からRemote-containersを検索しインストールする。
インストールに成功するとVSCodeの左下に緑色のこんなアイコンが表示される。
![VScode-Docker-for-MacPython.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/7077eea5-f5e1-b3b7-18dc-7b5c34743a89.png)

## PythonのDockerイメージを取得
Macのターミナルから以下のコードを任意のディレクトリで実行

```bash
# Python3のDockerイメージを取得
docker pull python:3

# Dockerイメージが取得できているか確認
docker images
#結果
#REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
#python                   3                   768307cdb999        3 days ago          886MB
```

Docker DesktopのダッシュボードからもPython3のイメージの確認ができる。
![_2020-11-07_20.53.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/9f92306d-ba8a-ea85-9a75-b148f4778367.png)


## Dockerコンテナの作成&起動

取得したDockerイメージからコンテナを作成&起動します。
ターミナルからは以下のコマンドを実行

```bash
# コンテナの作成&起動
docker run -d -it python:3

# コンテナの確認
docker ps 
#結果
#CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#bf6e8b53da45        python:3            "python3"           7 seconds ago       Up 6 seconds                            strange_williamson
```

ダッシュボードから"Run"ボタンをクリックしても作成＆起動できる
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/aa1e810f-bfbb-0b64-6e41-4277afdacfc5.png)


## Remote-Containersを使ってVSCodeからコンテナへ接続

VSCode画面左下のこのボタンをクリック
![VScode-Docker-for-MacPython.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/2c95c13d-87cf-6e35-ba91-d125aea192fb.png)


画面上部に表示されたポップアップから"Attach to Running Container..."を選択
![Untitled 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/2bf83189-3468-b7bc-f524-30f6f55bf825.png)


起動しているコンテナが表示されるため、使いたいコンテナをクリック。
これで開発したいコンテナ環境に接続される。
![Untitled 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/5dc28876-19fb-daa4-cba4-d3b022153666.png)


次にファイルエクスプローラーから"Open Folder"をクリックして、書いたコードを置くためのディレクトリを選択する。
![Untitled 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/0a4585c0-7b91-6734-01e8-f66bcac8168f.png)

任意のディレクトリを選択して"OK"をクリック
![Untitled 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/eb8e9aec-6043-f21c-a2fe-1e13cdacdd6f.png)


最後にVSCodeのメニューから"ターミナル"→"新しいターミナル"をクリック。

こんな形のVSCodeで書いたコードがDockerコンテナ上でサッと実行できる環境が完成。
![_2020-11-07_21.34.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/1adf9fac-47ff-69d7-9fca-934964ab8756.png)



## おわりに

今回は起動済のコンテナに接続したけれど、Dockerfileを用意しておけばコンテナを作成してくれたりもするので、興味があればいろいろと試してみてください。

なにはともあれこれで綺麗なMacと末長く幸せに暮らせそうです。

### 参考記事
[https://blog.hiros-dot.net/?p=10059](https://blog.hiros-dot.net/?p=10059)
[https://www.keisuke69.net/entry/2020/06/04/145719](https://www.keisuke69.net/entry/2020/06/04/145719)