JetsonにおけるDocker
13. Dockerのインストールと基本的な使用方法
はじめに
Dockerは、アプリケーションとそのすべての依存関係をポータブルなコンテナにパッケージ化する軽量コンテナプラットフォームです。開発、テスト、本番環境での設定のずれを最小限に抑えて、同じ環境を実行するのに役立ちます。
Dockerはプロセスの分離、高速起動、効率的なリソース使用により一貫性を向上させます。ローカル開発、サーバー展開、マルチサービスAIパイプラインに最適です。
JetsonへのDockerのインストール
1. Docker CEのインストール
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-commonDocker GPG鍵とリポジトリを追加します(以下の例ではAliyunミラーを使用):
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-ce.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.ioDockerのインストールを確認:
docker --version
ユーザーをdockerグループに追加(シェルを再起動するかnewgrpを実行):
sudo usermod -aG docker "$USER"
newgrp dockerこれ以降、sudoなしでDockerコマンドを実行できます。
2. NVIDIA Container Toolkitのインストール
distribution=$(. /etc/os-release; echo "$ID$VERSION_ID")
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
ツールキットのインストール:
sudo apt update
sudo apt install -y nvidia-container-toolkitDockerのGPUランタイムを有効化:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerコンテナ内のGPUアクセスを確認:
sudo docker run --rm --runtime=nvidia --gpus all --network host ubuntu nvidia-smi環境にネットワーク制限がある場合は、イメージやパッケージをプルるときにミラー/プロキシを使用してください。
3. 手動インストール(APTが利用できない場合)
Docker CEがUbuntuリポジトリからインストールできない場合は、.debパッケージを手動でダウンロードしてください:
https://download.docker.com/linux/ubuntu/dists/
Ubuntuバージョンを選択:
| Ubuntuバージョン | コード | フォルダの例 |
|---|---|---|
| Ubuntu 20.04 LTS | focal | dists/focal/pool/stable/ |
| Ubuntu 22.04 LTS | jammy | dists/jammy/pool/stable/ |
| Ubuntu 24.04 LTS | noble | dists/noble/pool/stable/ |
次にアーキテクチャフォルダを選択:
amd64: x86_64(サーバー / PC)arm64: ARM 64ビット(Jetsonを含む)armhf: ARM 32ビットs390x: IBM zシステム
対応する5つのパッケージをダウンロード:
containerd.io_<バージョン>_<アーキテクチャ>.debdocker-ce_<バージョン>_<アーキテクチャ>.debdocker-ce-cli_<バージョン>_<アーキテクチャ>.debdocker-buildx-plugin_<バージョン>_<アーキテクチャ>.debdocker-compose-plugin_<バージョン>_<アーキテクチャ>.deb
ファイルをダウンロードしたフォルダからインストール:
sudo dpkg -i ./containerd.io_<バージョン>_<アーキテクチャ>.deb \
./docker-ce_<バージョン>_<アーキテクチャ>.deb \
./docker-ce-cli_<バージョン>_<アーキテクチャ>.deb \
./docker-buildx-plugin_<バージョン>_<アーキテクチャ>.deb \
./docker-compose-plugin_<バージョン>_<アーキテクチャ>.deb依存関係が欠落している場合は、次を実行:
sudo apt -f installDockerサービスの状態を確認:
sudo systemctl status dockerDockerが実行されていない場合:
sudo systemctl start dockerDockerの基礎
Docker EngineはDocker CLI(docker)を提供し、コマンドラインからイメージ、コンテナ、ネットワーク、ストレージを管理できます。
一般的なコマンドを学ぶ前に、次の2つのコア概念を確認してください:
- イメージ: コンテナを実行するために必要なベースOS、ランタイム、ライブラリ、アプリコードを含む読み取り専用テンプレート。
- コンテナ: イメージから作成された実行中のインスタンス。独自のプロセスと環境を持ち、独立して開始/停止できます。
要約:
Dockerイメージはインストールパッケージのようなものであり、コンテナは実行中のプログラムインスタンスです。
一般的なコマンド
1) Docker情報を表示
docker info2) Dockerバージョンを表示
docker --version3) イメージをプル
docker pull <イメージ名>タグが指定されていない場合、Dockerはデフォルトでlatestをプルします。
docker pull <イメージ名>:<タグ>4) イメージを実行
docker run <イメージ名>特定のイメージをインタラクティブに実行:
docker run -it ubuntu:18.04 /bin/bash実行中のコンテナをexitと入力して終了。
4.1) 実行中のコンテナを一覧表示
docker ps4.2) すべてのコンテナを一覧表示
docker ps -a5) 停止したコンテナを削除
docker container prune6) ローカルイメージを一覧表示
docker images7) イメージを削除
関連するコンテナを停止して削除した後にのみ削除してください。
docker rmi <イメージ名>8) コンテナを新しいイメージとして保存
docker commit <コンテナID> <新しいイメージ名>:<タグ>実際のコンテナIDに基づいて名前とタグを選択してください。
9) コンテナを停止
docker stop <コンテナIDまたは名前>