Docker

Dockerコマンドメモ

More than 1 year has passed since last update.

Dockerのコマンドでよく使いそうなものをまとめておく。

(自分が後から参照したときに分かるレベルでの記載になっています。)

# debianイメージのwheezyタグ上で「echo "Hello World"」を実行

% docker run debian:wheezy echo "Hello World"

# コンテナ名「HOGE」、ホスト名「FUGA」として、コンテナ内でbashを実行
% docker run -it --rm --name HOGE --hostname FUGA debian:wheezy bash

# コマンド(この場合はbash)終了時にコンテナを削除(終了後に勝手に削除されるので「docker ps -a」で表示されない)
% docker run -it --rm -h HOGEHOGE debian /bin/bash

# 動作中のコンテナを表示
% docker ps

# 停止したものも含めてコンテナを表示
% docker ps -a

# 停止したものも含んだコンテナのコンテナIDのみを表示
% docker ps -aq

# 停止したコンテナの削除。
% docker rm -v $(docker ps -aq -f status=exited)

# 動作中のコンテナの削除。
% docker rm $(docker stop $(docker ps -q))

# 既に起動してるコンテナにbashで入る
% docker exec -it [name or containerID] /bin/bash
% docker exec -it hogehoge /bin/bash

# Dockerfileを作成してから下記を実行してイメージを構築(sampleという名前で、hogetagというタグを付与)
% docker build -t sample:hogetag .

# ローカルのコンテナのイメージ一覧を見る
% docker images

# イメージの削除
% docker rmi [image_id]

# -dを付与するとバックグラウンドで起動する
% docker run --name myredis -d redis
# myredisに対してredisという名前でlinkさせて起動
% docker run --rm -it --link myredis:redis redis /bin/bash

# どのコンテナにも紐付いていないvolumeの一覧を見る、又は削除する。
docker volume ls -qf "dangling=true"
docker volume ls -qf "dangling=true" | xargs docker volume rm

# データボリュームコンテナを作成するときの例
docker run --name dbdata mysql:5.6 echo "Data-only container for mysql5.6"
docker run -d --volumes-from dbdata --name db mysql:5.6

# コンテナの3000番ポートをホストの13000ポートにポートフォワード、またホストの現在のディレクトリ直下にあるappディレクトリをコンテナの「/app」にマウント
% docker run -d --name hogehoge -p 13000:3000 -v "$(pwd)"/app:/app sample:hogetag
# ENVという環境変数にproductionを設定
% docker run -e "ENV=production" --rm --name hogehoge -p 9090:9090 -p 9191:9191 sample:hogetag

# ポートを自動マッピング
docker run -d --name hogehoge -P sample:hogetag
# 自動マッピングされたポート番号の確認
docker port sample:hogetag

名前がhogehogeというコンテナに対するコマンド

# 詳細を表示

% docker inspect hogehoge
# コンテナに対する変化点を表示
% docker diff hogehoge
# コンテナのログを出力
% docker logs hogehoge
# コンテナを削除
% docker rm hogehoge
# hogehogeというコンテナをtest/hogeimageというimageで保存する
% docker commit hogehoge test/hogeimage

docker-compose.ymlを作成したときに利用するコマンド

% docker-compose build

% docker-compose up
% docker-compose up -d
% docker-compose -f docker-compose-prd.yml up
% docker-compose -f docker-compose-prd.yml up -d
% docker-compose ps
% docker-compose logs
% docker-compose stop
% docker-compose rm