Dockerのイメージとコンテナ
イメージ作ったり、イメージからコンテナ作ったり、コンテナからイメージ作ったりのコマンドメモ。
イメージ
# 手元にあるイメージを確認する
# イメージは、リポジトリ&タグの組み合わせで一意になる
docker images
# Dockerfileを元にイメージを作成する
docker build .
# イメージ名指定&キャッシュを使わずにイメージ作成
docker build . --no-cache -t [イメージ名]
# 手元にイメージをDLする
docker pull [リポジトリURL]
# イメージを削除する
# イメージに紐づくコンテナがある場合は削除できない
# 先に紐づくコンテナをstopしてrmする必要がある
docker rmi [ImageID]
# イメージ情報の取得
docker inspect [リポジトリ名]:[タグ]
# CMDの確認
docker inspect [リポジトリ名]:[タグ] --format='{{.Config.Cmd}}'
コンテナ
# コンテナの一覧を確認 docker ps -a # イメージからコンテナを作成する # /sbin/init をつけないともともと設定してあるCMDが実行される docker run --name [コンテナ名] -d [イメージID] /sbin/init # イメージからコンテナを作って起動状態を維持する # i: 標準入力(STDIN)を開いたままにする # t: 擬似ttyに接続する。ディスプレイ(STDOUT)をつなぐイメージ # d: デタッチモード バックグラウンドでコンテナ起動 docker run -itd --name [コンテナ名] -d [イメージID] /bin/sh # docker-composeではこんな感じ # イメージからコンテナ作ってシェル実行してコンテナ消す docker-compose run --rm php /bin/bash -c "" # コンテナからイメージを作る # まず止めて docker stop [コンテナ名] # イメージ作る docker commit [コンテナ名] [リポジトリ名]:[タグ] # コンテナ削除 # まず止めて docker stop [コンテナ名] # 消す docker rm [コンテナ名]