ラベル Docker の投稿を表示しています。 すべての投稿を表示
ラベル Docker の投稿を表示しています。 すべての投稿を表示

2017年4月9日日曜日

Dockerの使い方

今回はコマンド編



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の全体図

Step1.GithubからDockerイメージをPullする。
 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コマンド
を使ったことがあれば感覚で使えるようになっていた。
あとはオプションコマンド。
コマンド毎に色々あるし、ここはやはり人海戦術的に

  使って覚えるしかないね。


参考URL







2017年4月8日土曜日

Windows上にDockerをインストールする(最新)



Dockerをインストールする前に


 乱立して開発終了したパッケージ群はインターネット上から消しといてくれよ…
Boot2Dockerインストールしちゃったじゃん!(泣)
DockerToolboxというのもあります。
これは使えるのだろうか、、Boot2Dockerの件もあって疑心暗鬼です。
色々調べた結果、、、
2017年4月時点、Hyper-Vが使える環境ならVirtualboxとか不要になったので、まさにBoot2Dockerと同じ末路を辿ってました…

あえて声を大きくして言っておきます。

信用していいのは、オフィシャルだけです!


インストール手順

いつも通り要点だけ書いていきます。


Step1.必要なパッケージをインストールする。

筆者は最初にBoo2Dockerをインストールしてしまったので、VirtualBox、Gitがインストールされている状態です。

Hyper-V有効にする方は2つのみ

 https://docs.docker.com/docker-for-windows/install/
 https://www.realvnc.com/download/viewer/

Hyper-V無効にする方は以下のパッケージも追加。

 https://git-for-windows.github.io/
 https://www.virtualbox.org/

Dockerをインストールした後Hyper-Vを有効にするかって聞かれるので
Windows 10 pro以上なら有効にできます。

有効にするとDockerがネイティブに動いてくれるのでVirtualboxは不要になるようです。
もし無効でしか使えない場合は、Docker-machineでVirtualboxのホストOSを作成します。

参照:https://github.com/docker/machine

2017年4月時点の話だと、イメージをdocker-machineで作ります。

> docker-machine create -d virtualbox default
> docker-machine ls
これで仮想OSが動いていればOKです。

動作確認は、
docker run busybox echo hello world
でhello worldってエコーが返ってきてれば成功です。



Step2.Dockerを使ってみる

一番わかりやすそうなもので、デスクトップ環境のついてるUbuntuなDockerを使ってみます。

まずはコマンドプロンプトを起動して、

> docker pull Ubuntu
> docker run -I -t -p 5901:5901 Ubuntu


これでもうSSHログインでUbuntuに入ってます!
しかもRoot権限で。



Step3.パッケージのインストール

Linuxインストールしたらまず何をやる?
答えはアップデート。

# apt-get update
# apt-get upgrade -y
# apt-get dist-upgrade -y


次にデスクトップ環境とリモートデスクトップを入れる。

ここで注意、
最初vncじゃなくxrdpを入れようとしてました。
よくよく考えてみるとホストWindows自身もリモートデスクトップ接続できる状態なので
ポート変えないとぶつかる事態が発生するので断念してます。

# apt-get install vnc-server -y
# apt-get install lubuntu-desktop lxde ibus-anthy -y



Step4.リモートデスクトップでログイン

RealVNCでログインしてみてください。
 これで好きにLinuxデスクトップ環境で遊べるようになりました。
 変なアプリを入れたりして汚れても大丈夫。
 Dockerイメージを削除して新しいDockerイメージを構築しよう。

Boot2Dockerをインストールしたが動かない

興味本位で手を出してしまったDocker

Dockerインストール周りってバージョン依存が激しくて簡単に動くものではないんですね。。

インストール方法からハマりどころまで記事を書いた後に気づいたのですが、

Boot2Dockerは非推奨のようです。。


Boot2Dockerを起動すると、DockerMachineにすぐ切り替えてくれってメッセージが出てきます。

このDockerMachineというのもちょっと訳あり(意味深)なんですけどね、
詳しくは別の記事に書きましたので、↓こちらを見てください。
 http://ivis-mynikki.blogspot.jp/2017/04/windowsdocker.html



以下の内容は間違っていませんが、使えない情報ですが、
今後検索で見てきてくれる人の気づきの為に残しておきます。

Docker環境を構築


 いつも通りに淡々と要点だけを説明していきます。

Step1.Boot2Dockerをダウンロードしてインストールする。

https://github.com/boot2docker/windows-installer/releases

Step2.Boot2Dockerを起動させる

インストール完了後、デスクトップ画面上に
「Boot2Docker Start」アイコンが出てくるので実行する。

Boot2Docker Startを起動

Step3.動いているかチェックする

コマンドプロンプトを起動してください。
 (WIN+RショートカットキーからCmd起動)

「boot2docker status」

と実行して、コンソール画面上に

 poweroff

って出てた方、残念です。
うまく動いてないので次を読んでください。

 running

って出てた方、うまく動いている方はここで終了です。
起動した画面が常時表示されて(邪魔)いることでしょう。

Step4.VirtualBoxを最新版にアップデートする。

デスクトップ上にVirtualBoxアイコンがあるのでダブルクリックしてください。
ランチャー画面でますでしょうか。

きっと出ません。

そうです。度重なるWindowsのアップデートで動かなくなっています。
最新版にしましょう。

 https://www.virtualbox.org/wiki/Downloads

終わったらStep2に戻ってください。

インストールさえ終われば素敵なDockerライフが待ってると思います。


Androider