[Docker] Dockerに入門する(インストール、OSイメージ入手、コンテナ起動、コンテナ管理)
こんにちは、@yoheiMuneです。
最近Dockerを触り始めました。面白いですね!今日はDockerのインストールから、CentOS7のコンテナ起動までをブログに書けたらと思います。
https://www.docker.com/what-docker
他の仮想化技術に比べて、「1つずつのコンテナサイズが小さい」「コンテナの起動が早い」などのメリットがあります。サイズが小さいとコンテナをネットワーク経由で転送するにもしやすいですし、起動が早いのも非常に嬉しいところです。詳しいところは以下の記事がわかりやすかったので、そちらをご参照ください。
巷で話題のDockerとは? | Think IT(シンクイット)
それでは、Dockerを触ってみましょう。
https://docs.docker.com/engine/installation/
インストールの結果、以下のコマンドが動けばOKです。
ここからCentOS公式のイメージを入手します。
https://hub.docker.com/_/centos/
他にも、DebianやUbuntuなども公開されています。
イメージを見つけたら、以下のコマンドでダウンロードします。
ダウンロードできたら、以下のコマンドで確認することができます。
画面はそのままに別のターミナルを立ち上げて
Docker実践ガイド impress top gearシリーズ(Amazon)
最後になりますが本ブログでは、インフラ・フロントエンド・Go言語・Node.js・Python・Linux・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
最近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をコンテナで動かしてみます。OSイメージを取得する
まずは、コンテナを生成するための元となるOSイメージを入手します。様々なOSイメージが Docker Hubで公開されています。ここからCentOS公式のイメージを入手します。
https://hub.docker.com/_/centos/
他にも、DebianやUbuntuなども公開されています。
イメージを見つけたら、以下のコマンドでダウンロードします。
# docker pull [イメージ名]:[タグ名] $ 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
を指定することで、コンテナ内で作業できる状態にすることができます。画面はそのままに別のターミナルを立ち上げて
docker ps
を実行すると、起動中のコンテナ一覧が表示され、上で起動したコンテナが存在することがわかります。# 別のターミナルで、起動中のコンテナ一覧を確認する $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d8ad028f734d centos:centos7 "/bin/bash" 2 days ago Up 3 minutes test01
コンテナを終了する
終了させるためには、exit
します。[root@d8ad028f734d /]# exit exitインタラクティブモードの場合にはログアウトするとコンテナも一緒に終了します。
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 test01STATUSが
Exited (0) 54 seconds
になっているところから、EXITED状態であることがわかります。もう一度、起動してコンテナに入る
先ほど止めたコンテナを再開してログインするには以下のように行います。# コンテナを起動する $ docker start test01 # コンテナにログインする $ docker attach test01 # または、startの時にログインもする $ docker start -a -i test01これでコンテナにログインできました。
コンテナを破棄する
コンテナの破棄は以下のように行います。$ docker rm test01これで先ほど作成した
test01
コンテナが消え去りました。$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESこれだけ簡単にコンテナを作成したり削除したりできるのはすごいですね。起動速度なども気にならずかなりサクサク使える感じです。これだけの使い勝手から「コンテナを使い捨てる」こともできるのかなと思います。
その他のコマンド
--help
オプションをつけてコマンド一覧や、各コマンドのヘルプを確認することができます。# Docker全体について $ docker --help # 各コマンドについて # docker [command] --help $ docker run --help
参考情報
Dockerの情報は本家の情報もいいですが、僕は以下の本で学びました。基本的なところがザーッと学べて良かったです。Docker実践ガイド impress top gearシリーズ(Amazon)
最後に
今日はDockerのさわりの部分でした。好きな環境をすぐに使えるのは非常に良いメリットだなと感じました。Dockerは仕事でも使うので、いっぱい記事も書けたらと思います。最後になりますが本ブログでは、インフラ・フロントエンド・Go言語・Node.js・Python・Linux・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!