【入門】Dockerとは?使い方と基本コマンドを分かりやすく解説します

Docker(ドッカー)とはDocker Inc.(旧DotCloud社)によって開発されたコンテナ仮想化ツールです。アプリ操作をコンテナに分けて実行することや、別のOS上にコンテナを移しても動作するよう働きます。

Docker(ドッカー)とは

本来Dockerには港湾労働者の意味があります。貿易に携わる彼らの仕事道具が、Container(コンテナ)と呼ばれる物理的な入れ物です。これは単なる器ではなく、積めたり移動したりする時にルールがあり、船舶による効率的な海上輸送を実現する重要な手段になっています。

さて、言うまでもなくインターネットの普及を支えているのは、Webサーバーをはじめとした各種サーバーという機械のおかげです。ただ、世の中のWebサイトの爆発的な増加にともなって機械も同じように増加していったら、サーバーの置き場所も費用も、そして管理も膨大になります。

そこで1台のサーバー上に、複数のサーバーとして利用できる仕組みを構築する方法ができました。それが仮想化と呼ばれる技術です。

さらに従来の仮想化を改善し、上記のコンテナの考え方を取り入れてIT版Dockerが誕生しています。詳しくは、こちらの翻訳記事(「いまさら聞けないコンテナ入門」)が参考になります。

Dockerの特徴

Dockerの利用にあたり、特徴やメリットなどをまとめてみたいと思います。ポイントは軽快さ、そして保存と再利用のしやすさにあります。それでは、Dockerについてさらなる理解のために、従来の仮想化手段と比較してみましょう。

コンテナの仮想化とは

冒頭で書いた貿易のコンテナ操作と同様に、積載や移動をルール通りに実行することで、より多くのメリットを享受することができます。そしてこのルールがDockerの場合には、各種の管理ツールとその利用方法に相当すると考えています。

これらのツールには、Docker Engine、Docker ComposeやDocker Registryなど多くが揃い、コンテナの制御を容易にしています。なお、ツール類は無償ですぐに利用が可能です。

コンテナ ハイパーバイザー ホスト型
起動速度 早い(秒速) 比較的遅い(分速) 比較的遅い(分速)
移動のしやすさ
専用プログラムサイズ 比較的大 比較的大
仮想マシンに利用可能なOS 選択できない(共通OS上で動作しているため) 何でも可能 何でも可能
セキュリティ △(共通OS上で動作しているため) 比較的〇 比較的〇
主なブランド Docker KVM Vmware / Virtual Box

(参考サイト)
Dockerのメリット・デメリット
Docker vs Virtual machines – What’s best for your business?
What is Docker: Docker vs VirtualBox, Home Server with Docker

Docker利用のメリット

上記の比較表により、Docker利用のメリットは以下の3点に集約することができます。

  • 速い(起動、処理)
  • 軽い(プログラムサイズ、移動のしやすさ)
  • エコ(Memory や Disk 消費量節約)

Dockerの用途

  • 開発を共有化する作業
  • 複数のOSでの動作チェック
  • バージョン管理システム
  • 本番環境での利用(レシピサイト「クックパッド」など)

(参考サイト)
Docker usage statistics: Increased adoption by enterprises and for production use
What is Docker and When to Use It
事例から考えるDockerの本番利用に必要なこと

Dockerの使い方

前章ではDockerの概要を解説してきました。ここからは、いよいよ実際にDockerを動かす方法の説明に移ります。

実は筆者はここで挫折した経験があります。ホスト型の仮想化ソフトウェアVmwareを普段利用しているため、安易に考えていたことがその理由です。全体の機能を、すぐに使いこなせると思い違いをしていたのかもしれません。

ここでの教訓を活かして、一つひとつの基本作業を確実に、そして順番に進めていきたいと思います。Dockerが誕生してから4年。動作は定着し、情報は豊富です。あわてず確実にコマンドを実行すれば、ふつうに動きます。

セットアップ

方法は異なりますが、Dockerは各種LinuxでもWindowsでもMacでも利用することが可能です。その中で今回は、CentOS 7(64-bit版)を利用して解説していきます。

なお細かいことのようですが、セキュリティを重視して作業はrootでは行わずに、非rootユーザーで実施します。

主に参照した作業手順は、「How To Install and Use Docker on CentOS 7」です。英文ですが、必要最小限のコマンドと説明に絞られているため、安心して進めることができると思います。Linux操作の基本さえあれば、Dockerが初めての方でも大丈夫です。それでは、さっそくDockerをインストールしましょう。

インストール方法

  1. パッケージの最新化
    $ sudo yum check-update
  2. Dockerの最新版のダウンロードとインストール
    $ sudo curl -fsSL https://get.docker.com/ | sh
  3. Docker起動
    $ sudo systemctl start docker
  4. Docker自動起動設定(サーバーの再起動時にも自動で立ち上がるようにする)
    $ sudo systemctl enable docker

(ご参考)一般的な実行方法

全て下記のルールに統一されています。詳しくは、公式サイトのマニュアルをご参照ください。

$ sudo docker [options] [command] [arguments]

それぞれのコマンドは大変重要です。ただ数が非常に多いため、全てを完璧に理解してから次に進むのは現実的に困難です。ここはあくまで、参考程度としてこれからご紹介するような実例を優先することをおすすめします。

Dockerイメージの取得

Dockerイメージとは?

すでに引用した「How To Install and Use Docker on CentOS 7」によれば、DockerコンテナはDockerイメージから稼働しています。このDockerイメージには、さまざまなアプリケーションやLinux OSが保管されています。

保管場所は、Docker公式の場所(その名もDocker Hub)で、特定のコマンドでダウンロードすれば、誰でもすぐに利用できます

イメージの検索

Docker Hubにあるイメージを検索する場合には、コマンドdocker searchのあとに、探しているイメージのキーワードを入力します。例えばCentOSのイメージの場合は下記により、候補が表示されます。通常は複数出てきます。

$ sudo docker search centos

公式のイメージの場合は、OFFICIAL欄にOKと表示されます。これはDocker Hubには誰でもイメージを登録することができるため、公式とそうでないものと区分けしています。

イメージのダウンロード

利用したいイメージが見つかったら、コマンドdocker pullのあとに、検索したイメージ名を入力してダウンロードします。イメージ名がcentosの場合には、以下となります。

$ sudo docker pull centos

イメージの実行

ダウンロードしたイメージを実行する場合には、docker runのあとに、実行したいイメージ名を入力します。イメージ名がcentosの場合には、以下となります。

$ sudo docker run centos

ダウンロードしたイメージの確認

下記のコマンドを入力することにより、これまでダウンロードしたイメージの一覧が表示されます。

$ sudo docker images

知っておきたい基本的なコマンド

前項では、Dockerイメージを操作するコマンドの一例をご紹介しました。もちろん、それら以外にも数多くのDockerコマンドが提供されています。本章ではこれらの中でも、特によく使用するものを中心に整理しています。日本語の解説では、「Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き)」のDockerコマンド一覧が、簡潔にまとまっていると思います。

コンテナの起動や停止

コンテナの起動

$ sudo docker run -it centos

このコマンドにより、コマンドプロンプトの表示が変わります。この操作により、作業場所がコンテナ内部に移動していることがわかります。この状態では、Linuxの通常のコマンドが使えます。

コンテナの停止

$ sudo docker stop (CONTAINER IDまたはNAME)

コンテナの終了(削除とは異なります)

$ sudo docker kill (CONTAINER IDまたはNAME)

コンテナの削除

$ sudo docker rm (CONTAINER IDまたはNAME)

イメージに関するコマンド

Dockerイメージの一覧表示

$ sudo docker images

DockerイメージのDocker Hubへの登録

$ sudo docker push (docker-registry-username)/(docker-image-name)

自身のオリジナルのイメージをDocker Hub上で公開し、世界中のユーザーと共有することができます。そのためには、あらかじめ公式サイトのDocker HubでDocker IDを取得(無料)が必要です。また上記コマンドを実行のために、$ sudo docker loginでDocker Hubにログイン認証してください。

Dockerで快適な動作環境を手に入れましょう!

ここまでいかがでしたか。最初は、基本的なコマンドの実行さえ、慣れずに不安です。ただある程度意味を理解すれば、すぐにステップアップして応用できるようになると思います。あとはふつうにWebサーバーやデータベースサーバーを立ち上げて、検証用の環境として活用もできます

さてDockerを手軽に始めるためには、まずは自由に利用できるサーバーが不可欠です。カゴヤ・ジャパンからは、VPSプラン「KAGOYA CLOUD/2」がおすすめです。最近リニューアルした最新プランで、ぜひDockerの醍醐味を味わってみませんか。

高速でセキュアな環境で運用できるWordpressユーザー向けに特化したWordPress専用サーバー

人気記事ランキングトップ10

カテゴリ一覧

新着記事Pick Up!