Windows11 WSL2 Ubuntu 24.04 LTS Docker miniconda3

docker-compose を使ってマウントの指定

ホスト OS のユーザ領域とコンテナ内のフォルダを共有するためには、
Docker volume バインドマウント
で説明してきたように長いコマンドを書く必要があります。
もっと簡単にしたいですよね。
Dockerfile 内で VOLUME 命令を書く方法は
例)VOLUME /myapp
としました。
でもこの命令では引数としてコンテナ側のディレクトリしか指定することはできません。
しかし docker-compose を使うとホスト OS のユーザ領域と共有を構成することができます。
Dockerにおけるボリュームのマウント
が参考になります。

マウント指定 docker-compose ファイル構成

まずは docker-compose を作成するためのフォルダを作成します。
ホスト OS のユーザ領域に d-minic-c/ [名前は適当です]のフォルダを作成します。
この中に、Dockerfile、docker-compose.yml、files[名前は適当]フォルダを作成します。
files の中にはコンテナ内で動作させたい(必要な)ファイルを保存します。
ファイル構成は下記のようになります。
/home/yamada/d-minic-c/
 ├ Dockerfile
 ├ docker-compose.yml
 └ files/
   └ test.py

Dockerfile ファイル作成

まずは Dockerfile ファイルを作成します。
continuumio/miniconda3 と pandas をインストールして
WORKDIR を /app とするだけです。
miniconda3 の中で pandas が動くコンテナの骨組みができます。

FROM continuumio/miniconda3
WORKDIR /app
RUN conda install pandas

自分の PC Windows で TeraPad 等を使用して
Dockerfile ファイル(上記内容)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-minic-c
ここに Dockerfile を保存します。
ファイル名は必ず
Dockerfile
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

docker-compose.yml ファイル作成

Docker Compose という Docker 立ち上げ設定書の機能を利用して、コンテナを立ち上げます。
今回は半角スペースの数を2と決め、2つづつ字下げをしています。
内容は以下の通りです。


services:
  name: yamada
  mini:
    build: .
    volumes:
      - ./files:/app

  1. services:

    Docker Compose は複数の Docker 環境を立ち上げることができます。
    今回は mini [名前は適当]と言うコンテナだけを立ち上げますが、ここに続けて記述することにより、 他のコンテナも立ち上げることができます。

  2. name: yamada

    Docker Compose のプロジェクト名です。
    同じコンテナでも使う人が違う場合もありますよね。
    今回は yamada という名前を付けました。

  3. build: .

    Dockerfile ファイルを元に立ち上げて行きますよと宣言します。

  4. volumes:

    「:」を挟んで左側の値 ./files
    ローカルディレクトリ
    /home/yamada/d-minic-c/files
    と右側の値
    WORKDIR /app
    (Docker 内ディレクトリ)
    を接続する設定を記述します。
    ローカル側は相対パス、サーバー側は絶対パスで記述します。

  5. volumes の効用

    Docker コンテナの中の世界に対して変更を加えたい!と思うことはしばしば起こります。
    この要望に答えてくれるのが volumes 機能です。
    今回の例では、files フォルダに変更内容を記述したファイルを置いてあげれば良いのです。


自分の PC Windows で TeraPad 等を使用して
docker-compose.yml ファイル(上記内容)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-minic-c/
ここに docker-compose.yml を保存します。
ファイル名は必ず
docker-compose.yml
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

./files/test.py ファイル作成

コンテナの動作確認用の python ファイルを作成します。
pandas でシリーズ配列オブジェクトを作成してみます。
簡単です。

import pandas as pd
h_list = [160,161,162,163,164]
h_series = pd.Series(h_list)
print(h_series)

結果には 0 から始まるインデックスラベルが付与された配列が表示されます。
自分の PC Windows で TeraPad 等を使用して
test.py ファイル(上記内容)
を作成しこれを保存します。
Windows 側のエクスプローラーにおいて、ネットワークの下に Linux のフォルダがあります。
Linux の中に
Ubuntu-24.04(\\wsl.localhost)
のフォルダがあります。
\\wsl.localhost\Ubuntu-24.04\home\yamada\d-minic-c/files/
ここに test.py を保存します。
ファイル名は適当
test.py
です。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。

ここまでで Docker mini を動作させる準備が終わりました。
引き続き Docker Compose mini を実行していきます。


  • docker-compose mini ファイル実行 に進む
  • Docker volume バインドマウント に戻る
  • Docker volume に戻る
  • Docker イメージ d-minic コンテナを起動 に戻る
  • dockerfile で continuumio/miniconda3 コンテナを起動 に戻る
  • docker-miniconda3 コンテナの構築 に戻る
  • NVIDIA Container Toolkit インストール準備まとめ に戻る
  • Docker コンテナ miniconda3 に戻る
  • 70VPS に戻る