目次
Docker環境セットアップの方法とDockerfileをまとめたリポジトリです.
(上に戻る)
ここで,本レポジトリのセットアップ方法について説明します.
(上に戻る)
まず,以下の環境を整えてから,次のインストール方法に進んでください.
| System | Version |
|---|---|
| Ubuntu | 22.04 (Jammy Jellyfish) or 24.04 (Noble Numbat) |
Warning
GPU版のDockerを使用する場合は,必ずNvidia Driverのインストールを済ませてください.
CUDAやcuDNNをインストールすることは必要ではありません.
Warning
コンテナの作成には10GBほどのストレージが必要です.十分な容量を確保してください.
(上に戻る)
既にコンテナをビルド済みで,別のコンテナをビルドしたい場合はこのセクションをスキップし,コンテナのビルド方法に進んでください.
-
本レポジトリをcloneします.
$ git clone https://github.com/TeamSOBITS/docker_ws.git
-
レポジトリの中のインストールのフォルダへ移動します.
$ cd docker_ws/setup_sh -
必要なリソースをインストールします.
$ bash install_docker.sh
Dockerコンテナ内でGPUを使う場合.以下のコマンドも実行します.
$ bash install_nvidia_docker.sh
-
コンテナを可視化するため,以下のコマンドを実行します.
$ sudo apt-get update $ sudo apt-get install -y python3-tk tk-dev
-
以下を実行後,GUIが表示されたらインストール完了です.
$ python3 -m tkinter
(上に戻る)
-
sobits_wsのディレクトリをディレクトリごとコピーし,Homeディレクトリなどに貼り付けてください.- この際,複製されたフォルダの名前を変更してください.
- 例:
sobits_ws→my_new_ws - コンテナの名前が被らないようにしてください.
-
コピーして名前を変更した
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のバージョンを下の表に記載しています。
-
Dockerfileからイメージをビルドします.
$ cd {コンテナPATH}/docker $ bash build.sh -
イメージからコンテナを起動します.
$ bash up.sh
-
起動中のコンテナに別端末からアクセスします.
$ bash exec.sh # >> {コンテナ名} username@:~$ ← この表示に切り替わる
Note
コンテナ内の colcon_ws/srcがローカルの{コンテナPATH}/srcと接続されていますので,そのフォルダ内のデータのみ共有可能となります.
Tip
コンテナから抜き出すために,「Ctrl」+「d」を同時に押すか,ターミナルにexitを入力するかです.
(上に戻る)
ビルドされたコンテナの一覧を表示し,それらを起動・再起動・停止・ターミナルの操作ができます.
install_docker.shで設定したaliasを用いて,コンテナの一覧を表示するために,以下のコマンドを入力します.
$ ceNote
このコマンドは自分がいるPATHに依存していないため,どこでも実行可能です.
(上に戻る)
- 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上の環境構築や使い方についてより詳しく知りたい場合は,以下のサイトのドキュメントを読んでみてください.
- 公式サイト: Docker Docs
(上に戻る)
