#なぜDockerを採用するのか?
コンテナ1つ作れば、テスト環境・本番環境もコンテナ起動でOKになるから
Dockerなしの場合
1回1回、テスト・開発・本番環境ごとにインストーラをダウンロード、起動、エラー修正しなきゃいけない
しかもチーム開発だと、全く同じバージョンの同じアプリで同じ挙動をしないといけないため大変
#Linuxについて
・Linuxのコンテナ技術を利用するので、Linuxの知識が必要
・Linux:Unixをベースに1から作ったオープンソースのOS
・ターミナルでは、Shellを仲介してKernelに命令を出している
・Shell:bazh,zsh,shなど
・Shellを起動するために必要なアプリがターミナルであって、Shell=ターミナルではない
#Dockerを使ってみる
運用の流れ
・Docker imageを管理するDockerHubから自分のhostに、Docker imageを持ってくる
・Docker imageをbashでコンテナ起動
・コンテナでの作業が終わったらexitかdetach
・Hostに戻ったときに、現在のコンテナの状況をps-a、imagesで確認
・exit状態にあるコンテナを再起動
・コンテナをcommitして新しいimageを作成する(=更新内容をDocker imageにする)
・DockerHubにアップする際、リポジトリ名と一致する必要があるので、古いimageを新しいimage名に変更する
・その後保存したDocker imageをDockerHubにpushする
※タグ=バージョン管理
#コマンド操作の例
$ docker login #Dockerにログイン
$ docker pull <image> #DockerHubからDocker imageを出力
$ docker run -it <image> bash #bashはshell。そのDocker imageでコンテナ起動
$ exit #コンテナでの作業を終了
$ docker ps-a #Dockerコンテナ一覧を確認
$ docker images #Docker images一覧を確認
$ docker restart #Dockerを再起動
$ docker exec -it <container> bash #特定のコンテナで作業開始
$ docker commit <container><image> #特定のコンテナの変更をDocker imageに反映
$ docker tag <source> <target> #Docker imageの名前を変更
$ docker push <image> #Docker imageをリポジトリにpush
$ docker rmi <image> #Docker imageを削除