2017/01/27更新

[Docker] DockerのインストールとLinux起動まで

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
最近Dockerを触り始めました。面白いですね!今日はDockerのインストールから、CentOS7のコンテナ起動までをブログに書けたらと思います。

画像

目次




Dockerとは

Dockerとは仮想化技術の1つで、最近はやりのコンテナ型の仮想化です。他の仮想化技術とは異なり、以下の図(右側)のようにオペレーティングシステム上でDockerが動くような仕組みのようです。
画像 https://www.docker.com/what-docker

他の仮想化技術に比べて、「1つずつのコンテナサイズが小さい」「コンテナの起動が早い」などのメリットがあります。サイズが小さいとコンテナをネットワーク経由で転送するにもしやすいですし、起動が早いのも非常に嬉しいところです。詳しいところは以下の記事とかがわかりやすいかなーと思いますので、説明はそちらに譲ります。

巷で話題のDockerとは? | Think IT(シンクイット)

それでは、続いてインストールしてみます。



Dockerのインストール

Dockerのインストールは下記の本家サイトからダウンロード&インストールができます。各種環境に合わせたものがあるので、自分にあったものを選びます。また、WindowsとMac共にOSのバージョン指定などがあるのでその辺はサイトをご確認ください。

https://docs.docker.com/engine/installation/

インストールの結果、以下のコマンドが動けばOKです。
$ docker --version
Docker version 1.13.0, build 49bf474



DockerでCentOS7を動かしてみる

それではDockerを使ってみたいと思います。動かすものはなんでも良いのですが、ここではCentOS7を動かしてみたいと思います。


Docker Hub

Dockerを作成するイメージはDocker Hubで色々と公開されています。例えばCentOSについては以下で公式のものが公開されています。

https://hub.docker.com/_/centos/

このDocker Hubで使いたいイメージ(例えばDebianやUbuntuなど)を見つけることができます。

イメージを見つけたら、以下のコマンドでダウンロードします。
$ docker pull centos:centos7
:centos7はタグで、どのイメージを落とすのかを指定できます。

ダウンロードできたら、以下のコマンドで確認することができます。
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos7             67591570dd29        5 weeks ago         192 MB
これでCentOSのイメージを入手できました。


コンテナを作成する

上記で入手したイメージからコンテナを作成します。docker runコマンドを使って、でコンテナを作成することができます。
$ docker run --name test01 -i -t centos:centos7 /bin/bash
[root@d8ad028f734d /]#
ここで--name test01はコンテナ名、-iはインタラクティブモード、-tは仮想端末を割り当てるという意味で、-i -tを指定することでsshでログインした感じで使うことができます。

以下のようにCentOSであることを確認できます。
[root@d8ad028f734d /]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
この画面はこのままに、別のターミナルを立ち上げて以下を実行すると、コンテナが起動中なことがわかります。
# 別のターミナルを起動して実行する
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
d8ad028f734d        centos:centos7      "/bin/bash"              2 days ago          Up 3 minutes                                 test01
STATUSがUp 3 minutesになっているところで、起動を確認できます。


コンテナを終了する

終了させるためには、exitします。
[root@d8ad028f734d /]# exit
exit
インタラクティブモードの場合にはログアウトするとコンテナも一緒に終了します。Exited状態のコンテナも見るために、docker ps-aコマンドを付与して確認します。
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                           NAMES
d8ad028f734d        centos:centos7      "/bin/bash"              2 days ago          Exited (0) 54 seconds ago                                   test01
STATUSがExited (0) 54 secondsになっているところから、EXITED状態であることがわかります。


再度起動してコンテナに入る

先ほど止めたコンテナを再開するには以下のように行います。
$ docker start test01
これで起動できます。そしてtest01コンテナに入るためには、attachコマンドを利用します。
$ docker attach test01
これでコンテナにログインできました。


コンテナを破棄する

コンテナの破棄は以下のように行います。
$ docker rm test01
これで先ほど作成したtest01コンテナが消え去りました。
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS                           NAMES
これだけ簡単にコンテナを作成したり削除したりできるのはすごいですね。起動速度なども気にならずかなりサクサク使える感じです。これだけの使い勝手から「コンテナを使い捨てる」こともできるのかなと思います。



参考情報

Dockerの情報は本家の情報もいいですが、僕は以下の本で学びました。基本的なところがザーッと学べて良かったです。

Docker実践ガイド impress top gearシリーズ(Amazon)



最後に

今日はDockerのさわりの部分でした。好きな環境をすぐに使えるのは非常に良いメリットだなと感じました。Dockerは仕事でも使うので、いっぱい記事も書けたらと思います。

最後になりますが本ブログでは、インフラ・フロントエンド・Go言語・Node.js・Python・Linux・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。