man
 docker
 コンテナ操作
    run
    inspect
    ps
    start他
    port
    exec
    attach
    logs
    rm
 イメージ操作
    images
    pull
    search
    commit
    rmi
    push
 イメージ作成
    build
 ネットワーク


 man
 ・コマンドのマニュアルページ
$ man docker [コマンド]  で参照
 ・利用方法
$ docker [コマンド] --help  で参照

 dockerコマンド
 ・CLIでDockerデーモンを操作するクライアント
 ・書式
docker [オプション] コマンド[タグ・・・]

 コンテナ操作
 docker run
 ・指定されたイメージをコンテナとして起動
 ・起動後、そのコンテナ内で実行するコマンドと引数を指定
 ・イメージがロードされていない場合は、まずリポジトリサイトからイメージをダウンロード
 ・イメージがすでにロードされている場合は、そのままコンテナを起動
 ・書式
docker run [オプション] イメージ[コマンド] [引数・・・]
 ・オプション
       -d     コンテナをバックグラウンドで実行
-i     標準入力をオープンしたままに維持
-t     疑似端末を接続
    --name コンテナに名前を付与(例: --name=contA)
    指定が無ければ、自動生成された名前が付与
-p     コンテナ内部で必要とするポートにホストポートを割り当て
-P     コンテナ内部で必要とするポートにランダムなホストポートを割り当て

 docker inspect  (Dockerオブジェクトの詳細情報を表示)
 ・オブジェクトは、コンテナや、image、networkなど
 ・書式
docker inspect [オプション] オブジェクト
 ・オプション
--type= 指定したタイプの情報を返す。
docker inspect --help

 docker ps  (ローカルリポジトリ内のコンテナをリスト)
 ・書式
docker ps [オプション]
docker container ls [オプション] のエイリアス
 ・オプション
-a --all 全てのコンテナをリスト、指定なしは稼働中のコンテナのみ

 docker stop,start,restart  (コンテナを停止、開始、再開)
 ・書式
docker start [オプション] コンテナ
docker container start [オプション] コンテナのエイリアス
docker stop [オプション] コンテナ
docker docker container stop [オプション] コンテナのエイリアス
docker restart [オプション] コンテナ
docker docker container restart [オプション] コンテナのエイリアス
 ・オプション
-t --time 停止までの時間を秒数で指定(例、-t 10、--time=10)

 docker port  (ポートのマッピングをリスト)
 ・ホスト側に割り当てられたポート番号を表示
 ・書式
docker port コンテナ[プライベートポート[/プロトコル]]
docker container port のエイリアス
 ・オプション

 docker exec  (指定したコンテナ内で、コマンドを実行)
 ・書式
docker exec [オプション] コンテナコマンド
docker container exec のエイリアス
 ・オプション
-i 標準入力をオープンしたままに維持
-t 疑似端末を接続
 ・実行例
$ docker exec -it web1 /bin/bash
root@xxxx:/usr/local/apache2# ls
bin build cgi-bin conf error htdocs icons include logs modules
root@xxxx:/usr/local/apache2#

 docker attach  (ローカルホストの標準入出力とエラー出力をコンテナに接続)
 ・書式
docker attach [オプション] コンテナ
docker container attach のエイリアス
 ・-itオプションを指定してbashを起動したcentosなどのコンテナに、
ホストマシンの標準入出力とエラー出力を接続
つながれば、コンテナ内で起動したbashのプロンプトが表示
 ・実行例
$ docker attach CentOS7
[root@xxxx /]#

 docker logs  (指定したコンテナのログを取得)
 ・コンテナ名かコンテナIDを指定
 ・書式
docker logs [オプション] コンテナ
docker container logs [オプション] コンテナのエイリアス
 ・オプション
       -f --follow     ログ出力を継続(tailコマンドの -f オプションと同じ)
--tail     ログの最後から何行分出力するかを指定
 ・実行例
$ docker ps
$ docker logs -f web1

 docker rm  (コンテナを削除)
 ・指定したコンテナを削、コンテナ名かコンテナIDを指定
 ・停止中のコンテナを削除
 ・書式
docker rm [オプション] コンテナ
docker container rm [オプション] コンテナのエイリアス
 ・オプション
-f --force 動作中のコンテナを強制削除

 イメージ操作
 docker images  (dockerイメージのリスト)
 ・ローカルホスト上にあるイメージの一覧を表示
 ・書式
docker images [オプション] [リポジトリ[:タグ]]
docker image ls のエイリアス
 ・オプション
-a --all 全てのイメージを表示
(デフォルトでは中間レイヤのイメージは隠す。)

 docker pull  (dockerイメージの取得)
 ・指定されたイメージまたはリポジトリをレジストリ―から取得
 ・タグには通常バージョンを指定、最新版を指定する場合はlatestを指定
 ・書式
docker pull イメージ名[:タグ]
docker image pull のエイリアス

 docker search  (dockerイメージの検索)
 ・指定された文字列に合致のイメージをDockerHubから探す。(結果は最大25件)
 ・書式
docker search [オプション] 文字列
 ・オプション
-f -filter= 指定した条件(星の数、自動化、公式)に基づきフィルタして出力

 docker commit  (新しいdockerイメージの作成)
 ・目的に応じて変更を加えたコンテナから新しいイメージを作成
 ・リポジトリにはターゲットとなるイメージ名を指定、タグにはバージョンを指定
 ・書式
docker commit [オプション] コンテナ[リポジトリ[:タグ]]
docker container commit のエイリアス
 ・オプション
-m -message= コミット・メッセージを指定

 docker rmi  (dockerイメージを削除)
 ・そのイメージを元に生成されたコンテナがある場合は削除できない。
 ・書式
docker rmi イメージ
docker image rm のエイリアス

 docker push  (dockerイメージのレジストリへのアップ)
 ・docker commitコマンドなどで新たに作成されたイメージをDocker Hubにアップ
 ・事前にユーザ登録をし、ログインする必要があり。
 ・書式
docker push リポジトリ名/イメージ名[:タグ]
docker image push のエイリアス

 イメージ作成
 docker build  (Dockerfileからのイメージ作成)
 ・Dockerfile​​ 作成後に実施
 ・Dockerfileからイメージをビルドする。
 ・パスで指定されたディレクトリ内のDockerfileを読み込む。
 ・パスで指定されたディレクトリやファイルは、Dockerfile内のADDコマンドなどで利用
 ・書式
docker build [オプション] パス
 ・オプション
       -f --file=     buildに使用するDockerfileのパスを指定
-t --tag=     buildが成功した時にイメージに適用するリポジトリ名とタグを指定
 ・実行準備、例
$ cd  (プロジェクト用のディレクトリ作成)
$ mkdir dockerproject
$ cd dockerproject  (その中にDockerfileを作成)
$ vi Dockerfile
$ echo '<html><body><h1>Welcome to the New Docker World.</h1> \
</body></html>' > index.html
 ・実行例
$ docker build -t df/httpd .
 ・実行結果の確認
$ docker images
 ・作成したイメージからコンテナを生成、例
$ docker run --name web1 -d -p 8081:80 df/httpd

 ネットワーク
 docker network  (Dockerコンテナネットワーク)
 ・デフォルトネットワーク
$ docker network ls
 ・ユーザ定義のネットワーク作成
 ・書式
$ docker network create [オプション] ネットワーク名
 ・オプション
-d --driver ネットワークドライバ(bridge(デフォルト)、overlay)を指定
 ・実行例
$ docker network create --driver bridge service-network