konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【おてがる開発環境をつくろう】まずは Docker Desktop インストール

プログラミング言語いれたら、得てしてアレもコレも追加モジュールいれてなんだか PC自体おかしくなって、全部消してやりなおした経験はでしょうか?
開発環境のお作法なんてのは、本職で毎日さわってないと、すぐ忘れる。。。
忘れたってええじゃない、開発環境をつくること自体が目的になってはいけません
新品のPCでもソッコーで以前までと同じ開発環境をつくれるような、「おてがる」な開発環境を作る


きっかけは AI の勉強をしていく上での勉強用に class="st" Python 環境を作って触ってきました
Python 環境もいろいろ実現方法があり

WindowsPython をそのままインストール
Windows に Anaconda をインストールして、仮想環境上に Python
Linux系 OSで Python インストール
・pyenv を使う
・Docker で python 入りコンテナを使う

すでに 5種類。。。。色々試していくうちに、どれが正しいのかわからないまま、ずいぶんぐちゃぐちゃのボロボロになりました
結果、たどり着いた開発環境を自分の備忘録も含めまとめていきます

こんな感じでまとめていこうかと
【おてがる開発環境をつくろう】
1.まずは Docker Desktop インストール←今ココ
2.Docker であそぶ Python 入りのコンテナつくる
3.コンテナで Jupyter Lab 環境
4.さいきょうのえでぃた VS Code

まずは今となっては、開発者の方にとっては常識になってるかと思う Docker から
f:id:konchangakita:20210516222119p:plain

なんでコンテナ使うのか

壊れてもすぐ作り治せる
別のPCでも共通環境をソッコーで準備
自分のPCを汚さない、開発言語はちょっとしたバージョン変更、ライブラリ依存が大変

WSL 2 をセットアップ

Windows10 で標準に入っている Hyper-Vだけでも、DockerDesktop はインストールできますが、WSL で Ubuntu を用意しておくと何かと便利なので、一緒に準備しておく

https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
※バージョン 1903 以降、ビルド 18362 以上
このバージョンアップに結構時間がかかった

Hyper-Vを有効にする

f:id:konchangakita:20210516213448p:plain

Powershell

> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

これが実行出来ない場合は、ビルドを確認
> wsl --set-default-version 2

UbuntuWindows Terminal を準備

Microsoft Storeでインストール
 - Windows Terminal
 - Ubuntu
 ※MSのアカウントが必要
f:id:konchangakita:20210516215000p:plain


Windows Terminal で WSL の Ubuntu が実行できるようになると、Windows上でも Linuxコマンドが実行できるようになるので何かと便利
f:id:konchangakita:20210516215029p:plain

Docker Desktop のインストール

ここでようやく Docker Desktop をインストール
ダウンロードして、インストール(5分くらい)
https://www.docker.com/products/docker-desktop

インストール後、一度ログアウトする

まずは dockerhub アカウントを作ろう

dockerhubサイト
https://hub.docker.com/

Windows Terminal を開いて dockerhubアカウントを config 登録しておく

$ docker login

はじめてのコンテナ起動

こんな感じでとりあえず流してみる

$ docker version
$ docker pull hello-world   # dockerhub からコンテナダウンロード
$ docker ps                 # 起動しているコンテナの状況確認
$ docker ps –a              # 起動していないコンテナも確認
$ docker rm <CONTAINER ID>  #コンテナ削除

実行例)

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


よくつかう Dockerコマンド

・起動中のコンテナを表示
$ docker ps
・コンテナイメージを表示
$ docker images
・コンテナ起動
$ docker run
・起動中のコンテナに入る
$ docker exec



さいごに

まずは基本中の基本の Docker を Windowsで使うための環境整備
Docker コンテナさえ扱えてしまえれば、開発環境としてはどこでも共通に扱えるようになります
Docker の準備は MAC / Linux だともっと簡単ですね