Skip to content

TeamSOBITS/docker_ws

Repository files navigation

JA | EN

Contributors Forks Stargazers Issues License

Docker Workspaces

目次
  1. 概要
  2. セットアップ
  3. 実行・操作方法
  4. CUDA / Ubuntu / PyTorch 対応表
  5. トラブルシューティング
  6. コンテナの削除方法
  7. イメージの削除方法
  8. マイルストーン
  9. 参考文献

概要

Docker環境セットアップの方法とDockerfileをまとめたリポジトリです.

(上に戻る)

セットアップ

ここで,本レポジトリのセットアップ方法について説明します.

(上に戻る)

環境条件

まず,以下の環境を整えてから,次のインストール方法に進んでください.

System Version
Ubuntu 22.04 (Jammy Jellyfish) or 24.04 (Noble Numbat)

Warning

GPU版のDockerを使用する場合は,必ずNvidia Driverのインストールを済ませてください. CUDAやcuDNNをインストールすることは必要ではありません.

Warning

コンテナの作成には10GBほどのストレージが必要です.十分な容量を確保してください.

(上に戻る)

インストール方法

既にコンテナをビルド済みで,別のコンテナをビルドしたい場合はこのセクションをスキップし,コンテナのビルド方法に進んでください.

  1. 本レポジトリをcloneします.

    $ git clone https://github.com/TeamSOBITS/docker_ws.git
  2. レポジトリの中のインストールのフォルダへ移動します.

    $ cd docker_ws/setup_sh
  3. 必要なリソースをインストールします.

    $ bash install_docker.sh

    Dockerコンテナ内でGPUを使う場合.以下のコマンドも実行します.

    $ bash install_nvidia_docker.sh
  4. コンテナを可視化するため,以下のコマンドを実行します.

    $ sudo apt-get update
    $ sudo apt-get install -y python3-tk tk-dev 
  5. 以下を実行後,GUIが表示されたらインストール完了です.

    $ python3 -m tkinter

(上に戻る)

実行・操作方法

コンテナのビルド方法

  1. sobits_wsのディレクトリをディレクトリごとコピーし,Homeディレクトリなどに貼り付けてください.

    • この際,複製されたフォルダの名前を変更してください.
    • 例: sobits_wsmy_new_ws
    • コンテナの名前が被らないようにしてください.
  2. コピーして名前を変更したsobits_wsディレクトリのenv.shファイルを開いてください.

    env.shファイルの設定例:

    export DOCKERHUB_USERNAME="sobits"
    
    # -- Base System Configuration --
    export UBUNTU_VERSION="22.04"
    
    # -- GPU / CPU Configuration --
    # Set to "true" to build the GPU-enabled container, "false" for CPU-only.
    export COMPUTE_TYPE="gpu"    # Options: "cpu" or "gpu"
    export CUDA_VERSION="12.8.1" # Required only if COMPUTE_TYPE is "gpu"
    
    # -- Component Installation Flags --
    export INSTALL_ROS="true"       # Set to "true" or "false"
    export INSTALL_GAZEBO="true"    # Set to "true" or "false"
    export INSTALL_PYTORCH="false"  # Set to "true" or "false"
    export INSTALL_CV2="false"      # Set to "true" or "false"
    
    # -- Component Versions --
    export ROS_DISTRO="humble"     # ROS 1: "noetic", ROS 2: "humble", "jazzy"
    export ROS_DOMAIN_ID="0"       # Applicable only for ROS 2
    export PYTORCH_VERSION="2.9.0" # PyTorch version 
    export CV2_VERSION="4.12.0"    # OpenCV version
    
    # -- ROS Workspace --
    export ROS_WORKSPACE="colcon_ws" # ROS workspace name

Tip

Ubuntuのバージョンと対応するCUDAのバージョンを下の表に記載しています。

  1. Dockerfileからイメージをビルドします.

    $ cd {コンテナPATH}/docker
    $ bash build.sh
  2. イメージからコンテナを起動します.

    $ bash up.sh 
  3. 起動中のコンテナに別端末からアクセスします.

    $ bash exec.sh
    # >> {コンテナ名} username@:~$ ← この表示に切り替わる

Note

コンテナ内の colcon_ws/srcがローカルの{コンテナPATH}/srcと接続されていますので,そのフォルダ内のデータのみ共有可能となります.

Tip

コンテナから抜き出すために,「Ctrl」+「d」を同時に押すか,ターミナルにexitを入力するかです.

(上に戻る)

コンテナの実行・操作方法

Container Executer

ビルドされたコンテナの一覧を表示し,それらを起動・再起動・停止・ターミナルの操作ができます.

install_docker.shで設定したaliasを用いて,コンテナの一覧を表示するために,以下のコマンドを入力します.

$ ce

Note

このコマンドは自分がいるPATHに依存していないため,どこでも実行可能です.

(上に戻る)

CUDA / Ubuntu / PyTorch 対応表

  • CUDAについて,ローカル環境に入っているNvidia Driverが対応している最大のCUDAのバージョンより高いバージョンのCUDAをDockerで入れることはできません.
  • 以下のコマンドで右上に出力されるものが,対応している最大のCUDAバージョンです.
nvidia-smi
CUDA Version Ubuntu 22.04 Ubuntu 24.04 PyTorch Versions
12.4.1 - 2.4.0, 2.4.1, 2.5.0, 2.5.1, 2.6.0
12.5.1 - -
12.6.0 2.6.0, 2.7.0, 2.7.1, 2.8.0, 2.9.0
12.6.1 2.6.0, 2.7.0, 2.7.1, 2.8.0
12.6.2 2.6.0, 2.7.0, 2.7.1, 2.8.0
12.6.3 2.6.0, 2.7.0, 2.7.1, 2.8.0
12.8.0 2.7.0, 2.7.1, 2.8.0, 2.9.0
12.8.1 2.7.0, 2.7.1, 2.8.0
12.9.0 2.8.0
12.9.1 2.8.0
13.0.0 2.9.0

詳細はInstalling previous versions of PyTorchを確認してください.

(上に戻る)

トラブルシューティング

  • bash buid.sh実行時に,Dockerが指定されたイメージをDocker Hubで見つけることができなかったというエラーが出た場合

    failed to solve: sobits/pytorch:3.8.0-cuda12.8-ubuntu22.04: failed to resolve source metadata for docker.io/sobits/pytorch:3.8.0-cuda12.8-ubuntu22.04: docker.io/sobits/pytorch:3.8.0-cuda12.8-ubuntu22.04: not found
    • 対処法
      • Docker Hubにイメージがないので,dockerにログインしてから,ビルドしてアップロードしてください.

      • 例: opencvがない場合

        bash buid.sh opencv

        足りないものをすべてビルドした後に

        "Build complete. Do you want to push this image to Docker Hub? (y/N) "

        と言われるのでdocker hubにpushするか選択してください

  • コンテナ内でGUIが開けない場合

    (gedit:296): Gtk-WARNING **: 21:53:21.863: cannot open display: :0
    • 対処法
      • 以下のコマンドを入力
      $ xhost +local:

(上に戻る)

コンテナの削除方法

作成したコンテナを停止して削除します。

$ cd {コンテナPATH}/docker
$ bash down.sh

(上に戻る)

イメージの削除方法

特定のイメージを削除するコマンド

docker rmi <イメージ名またはID>
  • 削除後はdocker imagesで削除されたか確認すること

(上に戻る)

マイルストーン

現時点のバッグや新規機能の依頼を確認するためにIssueページ をご覧ください.

(上に戻る)

参考文献

Docker上の環境構築や使い方についてより詳しく知りたい場合は,以下のサイトのドキュメントを読んでみてください.

(上に戻る)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14