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 [コンテナ名]