UdemyでDockerを勉強し、いちチャプターで学んだことをまとめてみました。
自分用の備忘録として書いたので分かりにくいと思います。
##Dockerとは
開発環境や実行環境をチームで同じものを使うために使うアプリ。
例えばAさんとBさんがチームを組んでアプリを作っている場合、AさんとBさんの開発環境は全く同じである必要があり、更にテスト環境、本番環境も同じである必要がある。
環境を全て同じにするのは難しいがDockerがそれを簡単にしてくれるみたいです。
コンテナという技術を使って、コンテナの中で環境構築をしたり、コードを実行したり開発をしたりする。
AさんとBさんが同じコンテナを使っていれば同じ環境で開発をしていることになる。
##docker image
docker imageとは簡単に
・コンテナを立ち上げるための基となるもの
・コンテナに必要なファイル群のまとまり
・親レイヤーの上に子レイヤーが1つづつ重なってできている
docker image をホスト(自分のPC)にpullする
$docker pull <image名>
ホストの中にあるimageを確認
$docker images
imageを削除
$docker rmi <imageのID>
##コンテナ
####imageからコンテナを作成
(例) ubuntuイメージからコンテナを作成しbashを実行する
bashとはKernelに命令をするために使うshellの一つ
docker runはホストにimageが無ければDockerHubからpullしてくれる
$docker run -it ubuntu bash
名前を指定してrun
docker run --name <つけたい名前> bash
全てのコンテナを確認
$docker ps -a
コンテナから出る
$exit プロセスを消す(statuがexited)
detach(ctrl+p+q) プロセスを残す(statusがupのまま)
####再度コンテナに入る
再起動する
docker restart <コンテナ名>
コンテナを指定してbashを実行するかたちで再度コンテナに入る
$docker exec -it <コンテナ名> bash
###コンテナからimageを作成
imageをpullしてコンテナを作成して、そのコンテナの中で環境構築などをする。
そのコンテナを他メンバーに共有するために、コンテナからimageを作成してDockerHubにimageをpushする。
pushされたコンテナを他メンバーが使うことによって、同じ環境で開発できることになる。
$docker commit <コンテナ名><image名>:タグ名
コンテナ削除
statusがUpの場合はstopでExitedにする必要がある
$docker stop <コンテナid>
コンテナ削除
$docker rm <コンテナid>
Exitedになっているコンテナを全て削除する
$docker system prune