今回はコマンド編 |
Dockerって本当に便利?
前回はインストールを行い、軽くコマンド操作してDockerの使ってみてどういうものが分かってきた。でも分かってくると、
これってDockerじゃなくてもVMWareやVirtualBoxのようなVMでいいじゃん
って思うようになった。
この疑念は次の文章で解消される。
VMを使うときってイメージのバックアップや起動・停止もランチャー操作で簡単にできるし不便な事は何もない。
DockerのGUIは使った事ないけど、ネットワークの設定はHyper-VだしVMとやってる事はほぼ同じ。なのになぜ騒がれているんだろう。
この疑問はDockerって新しい技術は使われていないという部分を意味している。
他、様々な情報をまとめていったら見えてきた答えが1つある。
VMとDockerの決定的な違いは
DockerはGitHub技術がベースになっている事
これに尽きる。
VMの場合はOSイメージをダウンロードしてから仮想環境のイメージを作ってパッケージインストールする一連の手間と時間がかかる。
一方、Dockerの場合は、
Dockerイメージを取ってくるだけ。
いいものができたらGitHubにアップロードして貢献することもできる。
Dockerコミュニティーは楽させようと献身的な人たちやドヤ顔( ・´ー・`)が大勢いるので、Gitな我々(Hub)はその恩恵にあずかれる分けである。
Dockerの概要
今日インストールばかりだけど、Dockerを色々触って感じたまま図にしました。間違ってる箇所もあるかもしれませんが、大体こんな感じ。
Dockerの全体図 |
Step2.DockerイメージをRunする。(コンテナ生成)
Step3.コンテナをいじくる。(1サービス1コンテナ単位)
Step4.いじくったコンテナをイメージ化する。(Step2へ)
今までならホストOSの中にパッケージを詰め込んで環境構築して、
その中に複数サービスを入れてバージョン管理を気にしなければならなかった。
Dockerの場合はコンテナにパッケージを詰め込むので、
1コンテナ=1サービス
という考えになってくる。
つまり、Dockerのマスコットキャラであるクジラの絵のようにホストOSにコンテナを積むという感覚になり、パッケージ依存もコンテナ内で完結しているから他サービスに影響しない。
つまり便利である。
覚えておいた方がいいコマンドについて
ざっと下にコマンドを並べてみました。上の図をみて分かる通り、
GitHub ⇔ ローカルPC(Dockerイメージ ⇔ Dockerコンテナ)
というように3つのブロックに分かれている。
Dockerコマンド体系はごった煮状態で区別つかないので分割してコマンド一覧を書きました。
Dockerイメージ系コマンド一覧
dockerイメージ検索
docker
search [検索ワード]
dockerイメージ取得
docker
pull [dockerイメージ名]
取得したdockerイメージ一覧
docker
images
取得したdockerイメージの削除
docker
rmi [dockerイメージ名]
---------------------------------
コンテナ系コマンド一覧
コンテナ作成&アタッチ
docker
run --name コンテナ名 -it [dockerイメージ名]
コンテナ一覧
docker ps
-a
コンテナ削除
docker
rm [コンテナ名]
コンテナにアタッチ(exitすると停止)
docker
attach [コンテナ名]
コンテナにアタッチ(exitしても起動状態)
docker
exec [コンテナ名]
コンテナ起動
docker
start [コンテナ名]
コンテナ起動&アタッチ
docker
start -a [コンテナ名]
コンテナ停止
docker
stop [コンテナ名]
コンテナ即時停止
docker
kill [コンテナ名]
----------------------
コンテナ→イメージ化
コンテナ変更内容
docker
diff [コンテナ名]
コンテナのコミット(イメージ化)
docker
commit [コンテナ名] [作成するイメージ名]
変更履歴
docker
history [コンテナ名/イメージ名]
----------------------
Dockerイメージをアップロード
githubにログイン
docker
login
githubにプッシュ
docker
push [イメージ名]
コマンド一覧を書いて思ったこと
Dockerイメージとコンテナの仕組みさえ分かってしまえば、
- パッケージ管理(apt-get, yum, npmなど)
- GitHub
- Linuxコマンド
あとはオプションコマンド。
コマンド毎に色々あるし、ここはやはり人海戦術的に
使って覚えるしかないね。
0 件のコメント:
コメントを投稿