docker が使えるようになると、Windows / Mac / Linux とかあまり気にしなくなってきますね
docker run するのではなく、docker-compose や dockerfile を使って「インフラのコード化」をしておけば、
ローカルPCだけでは無く、オンプレ環境やクラウド上(AWS・GCP・Azureなど)にも比較的簡単に移行できます
docker-compose ファイルを自ら作成しない人でも、コマンドはある程度知っていてもいいと思います
※Kubernetes 関連がもう少し簡単になれば docker-compose コマンド自体も使わなくなるかもしれませんが…
docker-composeの覚えていた方がよさそうなコマンド
前提
docker-compose.yaml
があるフォルダに移動します。
プロセス確認
docker-compose ps
作業前に必ず確認するようにするといいと思います。
実行
docker-compose up
で起動します(初回起動時はイメージのダウンロードやビルドも自動で開始します)
止める場合は
Ctrl+C
を押下します
docker-compose.yaml
ファイルを編集した後に設定を反映させる場合も
docker-compose up
を実行します
問題なさそうであれば
Ctrl+C
で止めた後
docker-compose start
でバックグラウンドで実行されます
ログの確認が元からいらないのであれば、バックグラウンドで実行の-dをつけて起動することもできます
docker-compose up -d
「docker-compose up -d」の後にログを監視する場合
docker-compose logs -f
イメージ内のコマンドラインに入る
docker-compose exec サービス名 bash
または
docker-compose exec サービス名 sh
ログ確認
docker-compose logs [サービス名] -t
時間指定で確認したい場合は
※docker-composeのlogsにsinceオプションがない?のでdockerコマンド
docker logs コンテナ名 -t --since "2019-04-13 03:55:00Z"
その他コマンド
開始
docker-compose start
停止
docker-compose stop
再起動
docker-compose restart
削除
docker-compose rm
停止+削除
docker-compose down
ビルド
docker-compose build
docker コマンド
イメージの一覧
docker images
イメージを削除したい場合
docker rmi イメージ名
未使用イメージを一括で削除したい場合
docker rmi $(docker images -q)
イメージを別の名前でも保存したい場合
docker tag 元イメージ名 イメージ名
イメージをダウンロードしたい場合
docker pull イメージ名
イメージをdockerhubなどに追加する場合
docker push イメージ名
イメージをファイルにセーブ
docker save イメージ名 ファイル名
セーブしたファイルをイメージとしてロード
docker loard ファイル名
コンテナ内⇔動作元間でファイルをコピーする
docker cp コンテナ名:ファイル名 ファイル名
動作中のコンテナをイメージ化
docker commit コンテナ名 イメージ名
プロキシ環境でのビルド
docker build --build-arg http_proxy=http://proxy-url --build-arg https_proxy=http://proxy-url -t aaa/container-name:latest .