【第2弾】Kubernetes学習【Dockerを使いこなす】
おれもITエンジニアだ(今日は強気)。
やっぱり、Kubernetesが面白そう。
この感情が湧くと意外に熱中しやすい気がする。
でも、まだKubernetesではなく、コンテナ学習の段階。
Udemy「米国AI開発者がゼロから教えるDocker講座」を再開。
「セクション6: Dockerfileについて知ろう」まで聴講した。
図とコマンドを関連付けて説明していただけるので、物凄く分かりやすい。
■1.Docker imageを作成する方法
Docker imageを作成する方法は、以下の2種類がある。
・Dockerfileから作成する方法(docker build -t)
・コンテナから作成する方法(docker commit)
基本的には、Dockerfileから作っていく方が良いとのこと。
理由は、そのコンテナがどのような内容かが明確であるから。
■2.コンテナを稼働させる
docker run -it <Docker imageID> <コマンド> コンテナの新規作成&実行
※「docker run」と「docker exec」の違いが分からなくなってきた。
docker ps 動いているコンテナのみ表示
docker ps -a 動いていないものも含めてコンテナの一覧表示
■3.dockerhubに、Docker imageをアップロード
docker tag <ソース> <ターゲット>
※名称変更のコマンドであり、自分のリポジトリへアップロードする準備
docker push <ユーザ名>/<リポジトリ>
■4.dockerhubにアップロードをしたDocker Imageをダウンロード
docker rmi <Docker imageID>
※imageを削除。同じDocker imageがあるとダウンロードできないため。
docker images
※Docker imageの一覧表示
docker pull <Docker imageID>
※ダウンロードの実行
■次回
「Dockerfileを制する者がコンテナを制す」という格言をいただいたので、
Dockerfileの書き方を少しマスターしていきたい。
コンテナ同士の独立性、layerを共有するためディスク容量の節約など
の良い面を垣間見れた。
ただ、ここまでの一番の疑問は、docker hubにおきまして、
docker imageは差分のみ記録されるとのことであるが、
仮に、大元のimageがなくなった時はどうなるのか?
あと、混乱しがちな点としては、そのコマンドが、
Docker imageに対して行っているのか?コンテナに対して行っているのか?
をしっかりと意識してやっていくひつようがあるということ。
以上です。