Docker入門 [Hello World] コマンドの基本

2019年3月20日

Dockerを利用すると、UbuntuなどのOSやNginx/ApacheなどのWebサーバおよびMySQLなどミドルウェアの環境構築を素早くおこなうことができます。

 

各OSにおけるDockerのインストール方法については省きます。Dockerをインストールしたら、まずは習うより慣れろの精神でDockerのHello Worldから。

 

Dockerを利用する基本的な流れは下記のイラストのようになります。まずDocker社の提供しているサービス「Docker Hub」からイメージをダウンロード(取得)し、そのイメージからコンテナを生成し起動させます。そのコンテナがいわゆるUbuntu、NginxやMySQLとして実際に利用できる環境となります。

 

 

 

まずはhello-worldという名前の「イメージ」を「docker pull」でダウンロードします。

 

docker images」でイメージの一覧を表示させることができます。

hello-worldという名前(REPOSITORY)のイメージを確認できました。TAGはバージョン(latestは最新)、IMAGE IDとして「fce289e99eb9」が付与されているのが確認できます。 

 

次にイメージから「コンテナ」を生成します。「docker create」を利用します。

 

生成され起動中のコンテナの一覧は「docker ps」で表示させることができます。また「-a」オプションを付けることによって起動中でないすべてのコンテナを含めて表示させることができます。

CONTAINER IDは自動的に付与されたID、IMAGEはこのコンテナを生成する元となったイメージ、NAMESは今回は自動的に付与された名前です。STATUSの内容はこのコンテナの状態を表し上記では、生成されたばかりであることが確認できます(Created)。

 

次にこのコンテナを起動させてみます。「docker start」を利用します。「-i」オプションを付与します(もしくは-aオプション)。

上記コマンドを打つと下記のように表示されます。表示だけの機能ですが、これがHello Worldイメージから生成されたコンテナの機能です。

 

1つのイメージから別のコンテナを生成することも可能です。試しにもう一度コンテナを生成してみます。

コンテナの一覧を表示してみます。

すると同じイメージ(IMAGE : hello-world)から生成されたコンテナが2つ存在していることを確認できます。自動的に付与されたCONTAINER IDとNAMESもそれぞれ別であることが確認できます。

 

不要であるコンテナは「docker rm」で削除することができます。CONTAINER IDもしくはNAMESを指定します。

 

生成したコンテナを一括して削除したい場合は下記コマンドを実行します。

 

またイメージを削除するには「docker rmi」を利用します。まずdocker imagesでREPOSITORYもしくはIMAGE IDを確認します。

下記のようにして削除できます。

イメージを削除する前に、そのイメージから生成したコンテナを削除して下さい。そのイメージと紐付いているコンテナが残っている場合、エラーとなります。

 

はじめにイメージをダウンロードし(pull)コンテナを生成(create)、そして起動(start)をおこないましたが、「docker run」によってイメージのダウンロードからコンテナの生成、起動までを一括でおこなうことができます。

 

docker run」コマンドを利用して「hello-world」コンテナを起動します。

もしまだhello-worldイメージが存在していない場合、上記コマンドを実行すると下記のように表示されます。1〜5行目で確認できるように「docker run」はイメージのダウンロード(pull)から実行されます。そして更にdocker runを実行した場合、すでにイメージは存在しているので、コンテナの生成(create)・起動(start)のみがおこなわれます(つまり別のコンテナが増える)。

 

 

次にUbuntuで試してみます。「docker run」でオプションに「-it」を付与して実行します。

一気に起動中であるUbuntuのコンテナに入り、コマンドが入力できる状態となります。

一旦 exit で抜けます。

 

生成されたコンテナを確認します。

 

コンテナを再び起動させます。

docker psで起動中のコンテナを表示させると、STATUSが Up であることを確認できます。この状態で下記コマンドによって再度コンテナに入ることが可能となります。

start時に「docker start -ai f92025f68943」のように「-ai」オプションを付与すると一気にコンテナに入ることが可能です。

CONTAINER ID(f92025f68943)を指定していますが、NAMES(jolly_yalow)でも大丈夫です。

 

 

オプションなど細かな説明は省きましたが、以上でDockerをはじめて利用する上でのおおよその流れとなります。

docker pull イメージのダウンロード(取得)

docker create コンテナの生成

docker start コンテナの起動

docker run イメージのダウンロードからコンテナの生成・起動

 

 

関連ページ

docker cp でファイルをホストからコンテナへコピーする

 

Dockerfile入門[docker build]

 

DockerでMySQLを利用する[docker container run オプション]

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー