##Dockerイメージ関係
###イメージを取得する
タグを指定しなかった場合、デフォルトではlatestタグのイメージが取得されます。
$ docker pull [イメージ名]
###Dockerfileからイメージをビルドする
キャッシュを無効化する場合は、--no-chache
オプションを追加
$ docker build -t [生成するイメージ名]:[タグ名を指定] [ビルドコンテキストを指定]
Dockerfileという名前のファイルがビルドコンテキストに入っていない場合は、以下のように-f
オプションを追加してパスを指定
$ docker build -f [Dockerfile名(パスを指定)] [ビルドコンテキストを指定]
###ダウンロード済みのイメージ一覧を表示する
$ docker images
// もしくは、
$ docker image list
###イメージの詳細情報を表示する
$ docker inspect [イメージ名]
###イメージを削除する
もし既に、削除対象のイメージからコンテナが作成されている場合は、そのコンテナの削除後でないとイメージを削除できません。
(-f
オプションを付けると強制削除が可能)
$ docker rmi [イメージ名 or イメージID]
// もしくは、
$ docker image rm [イメージ名 or イメージID]
###イメージを一括削除する
イメージを作成し過ぎてしまって、不要なものをまとめて削除したい時に便利なコマンドです。
$ docker image prune
##コンテナ関係
###DockerHubからイメージを取得して、コンテナを起動する
$ docker run [イメージ名]:[タグ名]
→タグ名は、主にイメージのバージョン
docker runコマンドは、以下の3つのコマンドを1度にまとめて実行するコマンドです。
①docker pull:イメージの取得
②docker create:コンテナの作成
③docker start:コンテナの起動
オプション:
-d
:プロセスをバックグラウンドで実行
-it
:コンテナのシェルに接続する時に必要なオプション
--name [コンテナ名]
:コンテナ名を付ける
--rm
:コンテナを停止すると、そのままコンテナが削除されるようにする
###コンテナを再起動する
$ docker restart [コンテナ名 or コンテナID]
###コンテナを一時停止/再開する
//コンテナの一時停止
$ docker pause [コンテナ名 or コンテナID]
//コンテナの再開
$ docker unpause [コンテナ名 or コンテナID]
###コンテナを停止する
$ docker stop [コンテナ名 or コンテナID]
###コンテナを削除する
コンテナを削除するには、docker stop
でコンテナを停止する必要があります。
もしくは、下記コマンドに-f
オプションを加えることで強制削除することも可能です。
$ docker rm [コンテナ名 or コンテナID]
オプション:
-f
:コンテナが停止していなくても強制削除する
###コンテナを一括削除する
コンテナを作成し過ぎてしまって、不要なものをまとめて削除したい時に便利なコマンドです。
$ docker container prune
###コンテナ一覧を表示する
現在実行しているコンテナを一覧表示します。
$ docker ps
オプション:
-a
:現在実行されていないコンテナも表示
##DockerHubへのプッシュ
###DockerHubにログイン
$ docker login
###DockerHubにおけるタグ付けのルール
[Docker ID]/[イメージ名]:[タグ名]
####DockerHubにプッシュ
$ docker push [Docker ID]/[イメージ名 ]:[タグ名]
##コンテナのシェルに接続
###イメージからコンテナを作成・起動してコンテナに接続
$ docker run -it [イメージ名 or イメージID] bash
// ※シェルがbashの場合
ホストのファイルシステムをコンテナにマウントする時は、-v
オプションを使用します。
$ docker run -it -v [ホストのマウント元のパス]:[コンテナのマウント先のパス] [イメージ名 or イメージID] bash
更に、コンテナに接続するユーザを指定する時は-u
オプションを使用します。
例)ホストユーザーでコンテナに接続する場合
$ docker run -it -u $(id -u):$(id -g) -v [ホストのマウント元のパス]:[コンテナのマウント先のパス] [イメージ名 or イメージID] bash
###既にあるコンテナに接続
$ docker exec -it [コンテナ名 or コンテナID] bash
// ※シェルがbashの場合
コンテナから抜ける時は、以下のいずれかを実行
(よく利用されるのはexit)
①exit
コマンド
→ コンテナを動かしているプロセスを切ってコンテナから出る
②Control + q + p
(detach)
→ コンテナを動かしているプロセスを残してコンテナから出る
##ホストマシン⇆コンテナ間でのコピー
###ホストマシンのファイルをコンテナ内にコピー
ホストマシン→コンテナ
$ docker cp [ホスト上のコピーしたいファイルのパス] [コンテナ名 or コンテナID]:[コピー先のパス]
###コンテナ内のファイルをホストマシンにコピー
コンテナ→ホストマシン
$ docker cp [コンテナ名 or コンテナID ]:[コンテナ上のコピーしたいファイルのパス] [コピー先のパス]