LoginSignup
18
25

More than 1 year has passed since last update.

【入門】VSCodeでDocker環境構築

Last updated at Posted at 2023-01-07

Docker環境構築の動機

業務でディープラーニング開発に携わるようになり、なんとなく使っていたがあまり理解しないまま時間がたってしまったため、正月休みを活用して、一から学び直してようと思う。

本記事の対象

  1. Dockerをこれから使ってみようと思う人
  2. 環境構築でつまづいた人

実行環境/前提条件

(実行環境)

  • OS:Windows10
  • VSCode:1.74.2
  • Docker:v1.23.3
  • WSL:Ubuntu-20.04

(前提条件)
あらかじめ、以下のインストールが完了していること

  • VSCode
  • WSL2(※)
    ※Docker Desktopを使わないようにするために必要(ライセンスが有料化されたため)

【概要】

Dockerとは

仮想環境の1種で、仮想環境にはハイパーバイザ型とコンテナ型の2種類があり、Dockerはコンテナ型にあたる。

  • ハイパーバイザー型:
    - KVMやHyper-Vなどの仮想化技術でホストOS上で環境ごとにゲストOSを立ち上げる必要があり、容量が大きく、遅い
  • コンテナ型:
    -Dockerのような仮想化技術はホストOS上でゲストOSを立ち上げることなく、ホストマシンのカーネルを使って、あたかも別のマシンが動いているかのようにどうさせることができ、軽量で、高速
    VM_Container-680x387.jpg

詳細は以下の記事を参照。
https://knowledge.sakura.ad.jp/13265/

Dockerを使うことのうれしさ

  • OSレベルでパッケージ化するので、環境に依存せず動かせる
  • 環境構築をDockerfileというコード化されたファイルにすること(Infrastrucre as a Code)でメンテナンスが楽

【環境構築】

1. Dockerのインストール

VSCodeを立ち上げ、拡張機能から"docker"を検索し、Installを行う
image.png

2. DockerHubアカウントの登録

  • アカウント情報の入力
    image.png
  • メール認証
    image.png
    image.png

3. VSCode上でDockerHubのログイン

メニューバーからクジラマークを押して、Connect Repogitoryを押す
image.png
DockerIDの入力画面がVSCodeの上部に現れるので入力する
image.png
同様にpwを入力し、Enterを押す
image.png
無事ログインが完了すると、先ほどのDocker Hubは以下に自身のアカウントが表示される
image.png

もしくはVSCodeのターミナルでWSLを起動し、docker loginコマンドでログインすることも可能

4. Dockerコンテナの起動

docker run [imageName:tag]でdockerイメージの取得とコンテナの作成を行う。
ここでは、例として、ubuntu:18.04のイメージを指定。
docker runではローカルにイメージがない場合DockerHubから自動でイメージの取得を行ってくれる。
image.png

なお、tagでバージョンを指定しない場合は、最新のバージョンが取得される。
DockerHub内でイメージの検索を行いうことで、ポートされているタグを確認することができる。
image.png

docker ps -aでコンテナの状態を確認
image.png
docker run -it [imageName:tag]でコンテナを起動
image.png

コンテナ内部に入ると、こんな感じ。ここではubuntuのコマンドが使えるようになる。
image.png

コンテナから抜ける場合はCtl+Dまたはexitを実行。

【devcontainerを使ったコンテナ起動】

1. Dev Containersのインストール

image.png

2. 環境構築ファイルの作成

フォルダ構成は以下の通り。
devcontainer.jsonとDockerfileで環境構築の設定を記述する。
image.png

■devcontainer.json

  • "name":コンテナ名
  • "dockerFile":Dockerfileの相対パス
  • "extentions":リモートコンテナで使用する拡張機能
    image.png
    ■Dockerfile
  • FROM: ベースイメージの設定(例によってDockerHubから選択)
  • WORKDIR:作業ディレクトリの指定
    image.png

3. Dev Containerの起動

VSCodeの左下にある><ボタンを押下
image.png
画面上部に以下の内容が表示されるため、Reopen in Containerを選択。
image.png
ウィンドウが切り替わり、コンテナの起動が完了すると、以下のようにウィンドウ左下が切り替わる
image.png
あとは.ipynbを作成すればOK。
image.png

はまったポイント

Reopen in Containerで"Docker version 17.12.0 or later required"が発生

VSCodeにDevConatinerをインストールし、devcontainer.jsonとDockerfileを作成したのに、
Reopen in Containerを実行すると以下のエラーが発生。
image.png
調べてみると、Docker Desktopを使わない場合、WSLでDockerを起動させることが条件となるが、
VSCodeのDefaultの設定ではDevContainersをWSLで実行することが有効になっていないらしい。
Settingsを立ち上げwslと検索し、□Dev>Containers:Execite in WSLにチェックを入れることで解消できる。
image.png

参考リンク

18
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
25