DockerでHello World
前回の続き。
実際にDockerコンテナイメージからコンテナを作成・起動してみる。
Hello-Worldコンテナ
コンテナイメージをpullする
コンテナは元となるコンテナイメージから作成されます。ですが最初は当然のことながら、コンテナイメージはローカルPC上には存在しません。
そのため、イメージをどこかから取得してくるか自前でイメージを作成しなければなりません。
今回はイメージをローカルPC上にpullして、そのイメージからコンテナを起動してみます。
さっそくですが、次のコマンドを実行してみてください。
$ docker image pull hello-world Using default tag: latest latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535 Status: Downloaded newer image for hello-world:latest
色々出力されますが、Pull complete
の文字があります。これでhello-worldというコンテナイメージをpull出来ました。
実際にイメージが存在するかイメージ一覧を出力するコマンドで確認してみます。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest fce289e99eb9 2 months ago 1.84kB
ありますね!
では次はこのイメージからコンテナを作成・起動してみます。
と、その前にコンテナがまだひとつも存在していないかだけ確認しておきます。
$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker container ls
コマンドでコンテナ一覧を出力できます。オプションを付けないと起動中のコンテナのみ出力しますが、-a
オプションを付けることですべてのコンテナを出力できます。
ひとつもコンテナが存在しないことを確認できました。
コンテナを起動する
ではいよいよイメージからコンテナを起動してみます。次のコマンドを実行してみてください。
$ docker container run hello-world
"Hello from Docker!(Dockerからこんにちは!)"
無事起動できました!
このコンテナはデフォルトでは上記の文を表示するだけなので、これが何の役にたつの??と思うかもしれません。
でもこれはこれで十分なのです。hello-world container なのですから。
ここまで確認できれば、あとはどんなイメージもpullしてコンテナを作ることができます。
…念のため、コンテナが作成されているかさきほどのコンテナ一覧を出力するコマンドで確認してみます。
$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e7801d2cb42 hello-world "/hello" 3 minutes ago Exited (0) 3 minutes ago elegant_pike
ちゃんとコンテナがひとつできていますね!
docker container run
ここまで、pull
⇒run
の順にコマンド実行して確認をしましたが、docker container run ~
コマンドは、ローカルにイメージが存在しない状態で実行すると、イメージのpullから処理がされます。
コンテナの起動まで一気に行いたい場合は、docker container run ~
を使うと良いです。
Docker Hub
ここまでコンテナイメージをpullしてコンテナを実行しましたが、コンテナイメージはDocker Hubという、公式のコンテナイメージの保管レジストリサービス上のリポジトリから取得しています。
Hello-Worldイメージの場合はコチラのリポジトリです。
Docker Hubには個人・公式問わず様々なイメージリポジトリがあり、privateのリポジトリでなければ好きにイメージをpullすることが可能です。
公式のコンテナイメージリポジトリには、ubuntuやCentOS等のLinuxディストリビューションから、MySQLやjenkins等の様々なソフトウェアがコンテナイメージとして配布されています。
イメージをpullするだけであればアカウント登録は不要ですが、アカウント登録することによりDocker Hubにリポジトリを作成することができます。
リポジトリにはコンテナイメージを保管することが可能です。
なので、Docker Hubにアカウントを作っておくことをおススメします(もちろん無料!)⇒登録画面
おわりに
今回は実際にDocker Hubのリポジトリからコンテナイメージをpullしてコンテナを起動しました。
Docker Hubは、見ていただくとわかるかと思いますが、既存の様々なソフトウェアがコンテナ化されています。
コンテナを使えばすぐにそれらのソフトウェアを使うことができるので色々試してみるのが良いと思います。
(不要になったり、問題があったとしてもコンテナを削除するだけなのでローカルの環境を汚しません!)
最後に、Dockerコマンドのドキュメントのリンクしておきます。