Dockerが全くわからないので調べたメモ
Dockerのことが全くわからないので、少し調べたことをまとめてみました。
Dockerをインストール
Macの場合はInstall Docker for Macからインストールします。

アプリケーションのDockerを起動。

dockerコマンドが利用できるようになります。
docker
初心者の初期設定
使いこなせるようになるまでは以下の設定で良さそうです。


Dockerの構成
いまだによく仕組みがわからないのですが、正しくはないと思いますがこんな感じでしょうか。

原則として、1コンテナに1プロセス(nginx、phpなどなど)にしたほうがよいらしいです。
イメージはどこから入手するのか?
よく使われるイメージは Explore Official Repositories に揃っているようです。
Dockerコンテナを作成&起動
イメージからdockerコンテナを作成&起動してみたいと思います。
//docker run -d --name {コンテナの名前} {イメージ名}
docker run --name sample nginx
docker psで起動中のコンテナを表示すると以下のようになりました。

-dをオプションとしてつけた場合、バックグラウンドで実行することができます。
 つけない場合は、その後コマンドの実行が同じターミナルでできなくなります(別窓でターミナルを立ち上げれば実行か可能)。
localhostでアクセスする
nginxのコンテナを起動してもlocalhostで表示することはできません。
 だたし、作成時に-pオプションでポートを転送するように指定することができるようです。
下はホストの80番ポートを、コンテナの80番ポートに転送した場合の表示です。
run -d -p 80:80 --name test nginx

localhostを表示すると以下のようになります。

8080のポートでアクセスしたい場合は、↓になります
run -d -p 8080:80 --name test nginx
コンテンナの中に入る
docker exec -it コンテナ名 /bin/bash
-iはホストの入力をコンテナの標準出力をつなげる。
 -tはキーボードから入力した文字をコンテナ内のプロセスに送る
-itのオプションは、シェル(bash)を起動して使えるようにするというイメージになるのでしょうか。
/bin/bashは実行するコマンド。
必ずしも↑になるわけではないようです。
 ↓のようなエラーが出た際に/bin/shを実行すると起動できました。
exec: "/bin/sh": stat /bin/sh: no such file or directory
出るときは
exit
ホストのディレクトリをマウントする
コンテナ側のファイルをホスト側のファイルに同期します。
 -vオプションを利用します。
run -d -p 80:80 -v ホストのフォルダ:コンテナのフォルダ --name test nginx
Dockerfileでイメージを作成する
①Dockerfileを作成
Dockerfileを作成する(手動でもOK)
tocuh Dockerfile
以下のような感じにする。
# どのイメージを基にするか FROM php:7.2.7-apache # 作成したユーザの情報 MAINTAINER Admin <admin@admin.com> # RUN: docker buildするときに実行される RUN echo "now building..." # CMD: docker runするときに実行される CMD echo "now running..."
②ビルドする
docker build -t sample/php .
-tはビルド成功時のメッセージを表示させる。
docker imagesで作成したイメージを確認できる。
③イメージからコンテナを作成する
コンテナを作成する際に、ポートの指定と、ファイルのマウントも行います。
$(pwd)はカレントディレクトリになります。
docker run -d -p 80:80 -v $(pwd):/var/www/html --name sample_php sample/php
④indexファイルを作成
カレントディレクトリにindex.phpを作成します。 このファイルが、コンテナの/var/www/htmlにマウント(同期)されます。
<h1>ハローワールド</h1>
⑤localhostでアクセスする
↓の画面が表示される。

コマンド
| コマンド | 説明 | 
|---|---|
| docker version | バージョン情報 | 
| docker info | 動作状況 | 
| docker search {イメージ名} | イメージを探す | 
| docker pull {イメージ名} | イメージを取得 | 
| docker rmi {イメージ名} | イメージを削除 | 
| docker images | 取得済みのイメージ一覧 | 
| docker run {イメージ名} | コンテナの作成&起動 | 
| docker stop {コンテナ名} | コンテナの停止 | 
| docker start {コンテナ名} | コンテナの起動 | 
| docker restart {コンテナ名} | コンテナの再起動 | 
| docker ps | 実行中のコンテナ一覧 -aのオプションで停止中のコンテナも全て表示 | 
| docker rm {コンテナ名} | コンテナを削除 | 
| docker log {コンテナ名} | コンテナのログをみる | 
参考
初心者による初心者のためのDocker入門 その1 dockerコマンド編
 Dockerの開発環境構築 (Mac + Docker + PHP + Apache)