Docker 入門 docker pull と docker run

スポンサーリンク

今回は、Dockerの解説とdocker pull docker runについて解説します。

Dockerとは

  • コンテナ型仮想化環境の管理ソフトウェアの1つ
  • dockerの有用性
    • 必要最小限のリソースで開発・検証環境を作成できる
    • 作成と削除を素早く行えるため、使い捨てできる
    • ホストOSのカーネルが同一であれば、違うディストリビューションの環境を作成できる
    • コンテナイメージとして保存でき、別のホストへのコンテナの以降と展開が容易である
    • Docker Hub等のレジストリからコンテナイメージをダウンロードし展開できる

要するに、簡単に他の環境でも使いまわせる検証・開発環境を作成することができるんです!
最近では、kubernetesやdocker swarm等のコンテナのオーケストレーションツールの普及でコンテナでクラスタを組んで、本番環境でも利用すると事例も出ていますが、次の機会に解説します。

今回の検証内容

  • Dockerのインストール
  • docker pull してみる
    • CentOS7
    • httpd
  • docker run してみる
    • CentOS7
    • httpd

検証環境

  • Hyper-V上のCentOS 7.4

Dockerの検証

インストール

# yum -y install docker

Dockerの起動

# systemctl start docker

Dockerイメージの検索

# docker search <キーワード>

# docker search centos
INDEX       NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/centos                             The official build of CentOS.                   4096      [OK]       
docker.io   docker.io/ansible/centos7-ansible            Ansible on Centos7                              105                  [OK]
docker.io   docker.io/jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x8...   92                   [OK]
------省略-------

Dockerイメージの入手

  • docker pull コマンドを利用してイメージをダウンロードする
# docker pull <イメージ名>
  • centosのイメージをPull
# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ... 
latest: Pulling from docker.io/library/centos
5e35d10a3eba: Pull complete 
Digest: sha256:dcbc4e5e7052ea2306eed59563da1fec09196f2ecacbe042acbdcd2b44b05270
Status: Downloaded newer image for docker.io/centos:latest
  • ApacheのイメージをPull
# docker pull httpd
Using default tag: latest
Trying to pull repository docker.io/library/httpd ... 
latest: Pulling from docker.io/library/httpd
f2b6b4884fc8: Pull complete 
b58fe2a5c9f1: Pull complete 
e797fea70c45: Pull complete 
6c7b4723e810: Pull complete 
02074013c987: Pull complete 
0136fca87ee4: Pull complete 
0bced2b5d329: Pull complete 
Digest: sha256:55d51b9ba32f4da144211f8323299257ad3be265aa31239aeba1240cceff06b2
Status: Downloaded newer image for docker.io/httpd:latest
  • イメージの確認
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/httpd     latest              6896e3bd0247        34 hours ago        177 MB
docker.io/centos    latest              2d194b392dd1        9 days ago          195 MB

dockerイメージの起動(CentOS7を利用)

  • コンテナの起動
# docker run -it --name <作成するコンテナ名(任意)> <イメージ名> <実行コマンド>

# docker run -it --name centos centos /bin/bash

※上記のオプションで、すぐにコンテナにターミナルから操作できるようになります。

  • OSのバージョンの確認
[root@ce52b7367351 /]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
  • 「Ctrl」+「P」+「Q」でコンテナからExitする
[root@91fce72c760f /]# [root@home ~]
  • コンテナに再接続
# docker attach <コンテナ名 or ID>
  • コンテナのステータスを確認
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
cdf683d3fe01        centos              "/bin/bash"         29 seconds ago      Up 28 seconds

※ -aオプションと付加しなければ起動しているコンテナのみ表示される。

  • コンテナの停止
# docker stop <コンテナ名 or ID>
  • コンテナの削除
# docker rm <コンテナ名 or ID>

dockerイメージの起動(httpd利用)

# docker run -d --name <コンテナ名(任意)> -p 8080:80 <イメージ名>

※ホストの8080番ポートをコンテナの80番ポートにフォワーディングしています。

# docker run -d --name httpd -p 8080:80 httpd
a2ebb7f9ac946845939444e88c7e8b5804e0ea91fc4cb81c8b72edca96b72904
  • ブラウザから8080番に接続する

httpd-docker

最後に

今回は、簡単なDockerの説明とdocker pullとdocker runについて解説しました。
コマンド1つで、コンテナを起動させることができるので容易に開発、検証環境を準備することができますね。
Dockerコマンドはまだまだたくさんあり今後も紹介していきます。
次は、Dockerfileを用いたコンテナの作成とリポジトリへのpushを解説したいと思います。

タイトルとURLをコピーしました