コマンド
イメージ生成(build)
docker build -t [タグ名] [Dockerfileのパス]
コンテナの起動(run)
コンテナ名を指定して起動
docker run --name [任意のコンテナ名] -it [利用したいイメージ] /bin/bash
参考サイト:https://qiita.com/shimo_yama/items/d0c42394689132fcb4b6
各種オプション
フォルダをマウント
-v [ホストマシンの任意のディレクトリ]:[Dockerコンテナ内の任意のディレクトリ] -it [利用したいイメージ]
NVIDIA GPUを使用する(v19.03以降)
すべてのGPUを使用
--gpus all
指定したGPUを使用
--gpus '"device=0"'
参考サイト:https://github.com/NVIDIA/nvidia-docker/tree/master#quickstart
GUIの使用
docker run の前にxhost +local:user
を追加し、下記を追加
--env DISPLAY=$DISPLAY \
--volume /tmp/.X11-unix:/tmp/.X11-unix \
--volume /etc/localtime:/etc/localtime:ro \
--volume $HOME/.Xauthority:/root/.Xauthority \
ホストのIPアドレスを使う
--net host
ホストの時刻を使う
--volume /etc/localtime:/etc/localtime:ro
参考サイト: https://qiita.com/HommaHomma/items/c6dbb554afb51f1b95d5
ホストのUSBデバイスを使う
--privileged
実行中のコンテナに入る
起動しているコンテナIDまたはコンテナ名を確認
docker ps
指定したコンテナに入る
docker exec -it [コンテナID or コンテナ名] /bin/bash
コンテナの停止
起動しているコンテナIDまたはコンテナ名を確認
docker ps
指定したコンテナを停止
docker stop [コンテナID]
イメージの削除
特定のイメージを削除
イメージのリスト表示
docker images
指定したイメージの削除
docker rmi [イメージID]
参考サイト:https://qiita.com/tifa2chan/items/e9aa408244687a63a0ae
タグ無しイメージを一括削除
docker rmi `docker images -f "dangling=true" -q`
参考サイト:https://qiita.com/boiyaa/items/9972601ffc240553e1f3
全てのイメージを削除
docker images -aq | xargs docker rmi
参考サイト:https://qiita.com/fist0/items/2fb1c7f894b5bdff79f4
コンテナの削除
特定のコンテナを削除
停止しているコンテナのリスト表示
sudo docker ps -a
指定したコンテナを削除
sudo docker rm [コンテナID]
参考サイト:https://qiita.com/tifa2chan/items/e9aa408244687a63a0ae
全てのコンテナを一括削除
docker rm $(docker ps -aq)
参考サイト:https://qiita.com/ozhaan/items/9e2090da22ffd6c7ad2a
ホストーコンテナ間でのファイルのコピー
コンテナからホスト
docker cp [コンテナID]:[コンテナ内の絶対パス] [ホストOS内の絶対パス]
ホストからコンテナ
docker cp [ホストOS内の絶対パス] [コンテナID]:[コンテナ内の絶対パス]
参考サイト:https://qiita.com/gologo13/items/7e4e404af80377b48fd5
イメージのエクスポート
イメージを保存
docker save [IMAGE NAME] > [IMAGE NAME].tar
保存したイメージを読み込む
docker load < [IMAGE NAME].tar
参考サイト:https://uxmilk.jp/55512
コンテナのエクスポート
コンテナを保存
docker export [CONTAINER NAME] > [CONTAINER NAME].tar
保存したコンテナを読み込む
cat [CONTAINER NAME].tar | docker import - [REPOSITORY NAME]:[TAG NAME]
参考サイト:https://uxmilk.jp/55512
設定
sudo無しで使う
下記コマンドを打って再起動
sudo usermod -aG docker [ユーザー名]
参考サイト:https://www.virment.com/docker-sharing-folder-setup/#dockersudo
エラー対処
OCI runtime create failed:
CUDAのバージョンとNVIDIA ドライバーのバージョンがあってないとエラーを吐くみたい。
NVIDIAドライバーを更新すればOK
sudo apt-get install nvidia-[VERSION]
参考サイト:https://blog.sky-net.pw/article/103
参考サイト:https://qiita.com/min9813/items/90a1ef62b3dc37d0cc33
Error response from daemon: Unknown runtime specified nvidia.
もう一回nvidia-docker2をインストールし直す
permission denied
sudo chown [USER NAME]:[USER NAME] /home/[USER NAME]/.docker -R
sudo chmod g+rwx "/home/[USER NAME]/.docker" -R
参考サイト:https://www.answiz.com/questions/1818/docker-warning-config-json-permission-denied