Last-modified: 2020-07-28 (火) 02:26:19
Docker/チートシート

大カテゴリ

コンテナ新規起動

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
-
!
-
!
-
!
 
-
!
-
!
 
-
!
-
!
 
-
!
-
!
 
-
|
|
|
|
|
|
|
|
|
# よく使うフォーマット
 
# フォアグラウンド実行(Ctrl+Cで停止)
docker run -p <コンテナ外ポート>:<コンテナ内ポート> -e <環境変数>=<値> --name <ラベル名> <イメージ名>
# e.g.
docker run -p 8080:80 -e FOO=VAL --name test nginx
 
# バックグラウンド実行
docker run -d -p <コンテナ外ポート>:<コンテナ内ポート> -e <環境変数>=<値> --name <ラベル名> <イメージ名>
# e.g.
docker run -d -p 8080:80 -e FOO=VAL --name test nginx
 
# シェル起動
docker run -it <イメージ名> <シェルパス>
# e.g.
docker run -it ubuntu /bin/bash
 
# コマンド実行して終了
docker run <イメージ名> <コマンド>
# e.g.
docker run ubuntu echo foo
 
# オプション
# -d: バックグラウンド実行e
# -it <シェルパス>: シェル実行
# -p <コンテナ外ポート>:<コンテナ内ポート>
# -e <環境変数>=<値>: 環境変数
# --name <ラベル名>: ラベル
# --rm: コンテナ終了後に自動削除(フォアグラウンド実行時のみ有効)
# -h <ホスト名>: ホスト名
# -u <実行ユーザー>: 実行ユーザー
# -v <ホスト側ディレクトリパス>:<コンテナ側ディレクトリパス>: ディレクトリマウント(e.g. -v $HOST/foo:/foo)

実行中のコンテナでシェル起動

Everything is expanded.Everything is shortened.
  1
 
docker exec -it <コンテナID> <シェルパス>

ホスト/コンテナ間のファイルコピー

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
-
!
 
docker cp <src path> <コンテナID>:<dest path>
docker cp <コンテナID>:<src path> <コンテナID>:<dest path>
# e.g.
docker cp foo.txt b593985d089b:/foo.txt
docker cp b593985d089b:/foo.txt foo.txt

コンテナアタッチ

Everything is expanded.Everything is shortened.
  1
 
docker attach <コンテナID>

コンテナ停止

Everything is expanded.Everything is shortened.
  1
  2
 
 
docker stop <コンテナID>
docker stop $(docker ps -q)

コンテナ強制終了

Everything is expanded.Everything is shortened.
  1
  2
 
 
docker kill <コンテナID>
docker kill $(docker ps -q)

コンテナ削除

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# すべての終了しているコンテナを削除
docker rm $(docker ps -a -q)
# 動作中も含みすべてのコンテナを削除
docker rm -f $(docker ps -a -q)

コンテナ状態表示

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# 起動中
docker ps
# 全て
docker ps -a

イメージ

ダウンロード

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
-
!
 
 
# docker hubからダウンロード
docker pull <イメージ名>
docker pull <イメージ名>:<バージョンタグ>
# e,g.
docker pull ubuntu
docker pull ubuntu:18.04

ダウンロード済みイメージ一覧

Everything is expanded.Everything is shortened.
  1
 
docker images

コミット

Everything is expanded.Everything is shortened.
  1
  2
-
!
# 対象のコンテナを停止後
docker commit <コンテナID> <新しいイメージ名>

ビルド

Everything is expanded.Everything is shortened.
  1
 
docker build -t <新しいイメージ名> <Dockerfileパス>

セキュリティ

ユーザー名前空間でコンテナ分離

  1. vi /etc/docker/daemon.json
    Everything is expanded.Everything is shortened.
      1
      2
      3
    
     
     
     
    
    {
      "userns-remap": "default"
    }
  2. systemctl restart docker