docker command - taka512/memo GitHub Wiki

コマンド

docker login
docker logout

docker system prune 不要なコンテナ/イメージの削除
-a 全て
-f 強制的

docker build -t [生成するイメージ名:タグ] [Dockerfileの場所] イメージの作成
-f dockerfile名の指定

image系コマンド

docker image pull centos:7  イメージを取得
docker image pull gcr.io/tensorflow/tensorflow イメージ取得(url指定)
docker image pull centos -a   全てのタグ取得
docker image ls   イメージ表示
-a 全て表示
-q IDのみ表示
docker image inspect mysql:5.5  イメージの詳細表示
docker image tag nginx hoge/hoge:3 [アップロードするレジストリ] イメージにタグをつける
docker image rm nginx   イメージ削除
docker image prune   未使用イメージ削除
-a 全て
-f 強制的
docker image push  hoge/hoge:2  イメージプッシュ
docker image import exportしたtarファイルからイメージを作成
docker image save イメージをtar出力
docker image load saveしたtarからイメージを作成

container系コマンド

docker container run -it --name=hoge centos /bin/cal コンテナ作成/起動
-a 標準出力などをアタッチ
-d バックグラウンド実行
-i コンテナの標準入力を開く
-t 端末デバイス使用
-h コンテナ自身のホスト名を指定
-p=[ip:ip] ホストとコンテナのポートをマッピング
-c= 使用するCPU比率(分母は1024)
-m= 使用するメモリ(m,g単位)
-v=[/dir:/dir] ホストとコンテナのディレクトリを共有
-e= 環境変数を指定
-u= ユーザ名またはUIDを指定
--env-file= 環境変数をファイル名で指定
--workdir= 作業ディレクトリを指定
--name= コンテナに名前をつける
--rm コンテナ実行後に自動削除
--restart= コンテナ実行結果で再実行を行うコマンド
--add-host=hostname:ip コンテナの/etc/hostsに追加
--dns= コンテナのDNSサーバを指定
docker container start コンテナ起動
docker container stop コンテナ停止
docker container restart コンテナ再起動
docker container pause コンテナ一時停止
docker container unpause コンテナ再開
docker container rm コンテナ削除
docker container ls コンテナ表示
-a 全て表示
-q idのみ表示
-f= 表示結果をフィルタリング
docker container stats コンテナの稼働状況確認
docker container top コンテナのプロセス状況確認
docker container port コンテナのポート状況確認
docker container rename コンテナ名の変更
docker container cp コンテナ内のファイルをコピー
docker container diff コンテナ操作の差分確認
docker container commit コンテナからイメージ作成
docker container export コンテナからtarファイル出力
docker container logs コンテナのログ表示

network系コマンド

docker network ls ネットワーク表示
docker network create ネットワーク作成
docker network connect ネットワークへ接続
docker network disconnect ネットワークから切断
docker network inspect ネットワーク状態表示
docker network rm ネットワーク削除

dockerコマンド詳細

dockerコンテナを作成

書式

$ docker run [オプション] [--name {コンテナー名}] {イメージ名}[:{タグ名}] [コンテナーで実行するコマンド] [引数]

タグ名は省略でき--nameオプションおよびコンテナ名を省略すると、ランダムなコンテナ名となる

主なオプション

-d:バックグラウンドで実行。デフォルトはフォアグラウンドで実行

-i:コンテナーの標準入力を開く。/bin/bashなどでコンテナーを操作する際に指定

-t:tty(端末デバイス)を確保する。/bin/bashなどでコンテナーを操作する際に指定

-p {ホストのポート番号}:{コンテナーのポート番号}:Dockerサーバーのホストとポートマッピングを構成

実行例

# フォアグラウンドで実行
$ sudo docker run -it --name centos_test centos /bin/bash
# バックグラウンドで実行
$ sudo docker run -d -p 80:80 --name centos_test centos

Dockerイメージを作成

書式

docker commit {コンテナー名|コンテナーID} [{ユーザー名}/]{イメージ名}

実行例

$ sudo docker commit centos_test taka/centos

docker hubにアップロードする例

$ docker run -t -i busy box
$ docker ps -l
$ docker commit 78730deca022 taka512/mybusybox
$ ducker run -ti taka512/mybusybox
sh-takahashi-m:.ssh sh-takahashi$ docker login
Username: taka512
Password: 
Email: xx
WARNING: login credentials saved in /Users/sh-takahashi/.docker/config.json
Login Succeeded