【Docker】初めてのDocker#2(Hello World~コンテナ作成/起動/停止/削除)

1. 概要

前回の記事でDockerのインストールが完了した後の続きになります。
インストールがまだの方は前回の記事を参考にしてください。

それでは実際にDockerのコマンドをガシガシ入力して動作を試していきましょう!
※これ以降の操作は「Windows Terminal」から「Ubuntu」を開いて行っていきます。

2. Hello World

まずは、Dockerのインストールがちゃんとされているかバージョンを確認してみましょう。

$ docker --version

ふむふむ、ちゃんとバージョンが表示されていますね。

次に、Dockerが正しく動作することを確認してみましょう。おなじみのHello Worldですね。

$ docker run hello-world

赤枠のように「Hello from Docker!」と表示されればOKです。
ということで、無事にDockerが正常に動作するようなので次に進みましょう。

3. イメージ作成

続いてはサーバーを立ち上げ、リクエストを送ると「Hello World」とレスポンスを返すWebアプリを作成します。
※ここで作成するプログラムは、Visual Studio Code上で作成しています。

3-1. 「main.rb」作成

require 'webrick'

server = WEBrick::HTTPServer.new(
    DocumentRoot: './',
    BindAddres: '0.0.0.0',
    Port: 8000
)

server.mount_proc('/') do |request, response|
    response.body = 'Hello World'
end

server.start

rubyのwebrickという機能を使って、簡易的にWebサーバーを立ち上げることができるようです。
ここは思いっきり真似(コピペ)していますので、同じように真似しましょう。

3-2. 「Dockerfile」作成

FROM ruby:2.7

RUN mkdir /var/www
COPY main.rb /var/www

CMD ["ruby", "/var/www/main.rb"]

各行で行っていることをざっくりと説明すると、
1行目 ruby(バージョン2.7)使うよ~
3行目 /var/wwwフォルダを作成するよ~
4行目 main.rbファイルを3行目で作成したフォルダにコピーするよ~
6行目 rubyコマンドで4行目で配置したmain.rbファイルを実行するよ~
ということを定義しています。

ファイルの階層は同一階層に作成します。

3-3. イメージの作成

$ docker image build -t sample/webrick:latest .

3-4. イメージの確認

$ docker image ls

4. コンテナ作成・起動

4-1. コンテナ作成・起動

$ docker container run -p 8000:8000 --name webrick sample/webrick:latest

これでコンテナが起動でき、サーバーが立ち上がりました。

4-2. Webアプリにアクセス
ブラウザのURLに「localhost:8000」と入力してリクエストを投げてみましょう。

用意したレスポンス「Hello World」が返ってきてますね。

サーバーのログにもアクセスログが出力されていますね。
これでコンテナの起動・動作確認ができました。

5. コンテナ停止・削除

5-1. コンテナを停止
「Ctrl + C」で止めます。

5-2. コンテナの起動状態を確認

$ docker container ls

コンテナが停止できていることを確認できました。

5-3. コンテナを削除
削除実行前にコンテナすべての一覧を表示します。(停止しているものも表示します。)

$ docker container ls -a

コンテナの削除を実行します。

$ docker container rm webrick

もう一度コンテナすべての一覧を表示します。

今回の手順で作成したコンテナが削除されていますね。
これでコンテナのライフサイクルの一通りの操作ができました。

6. コンテナログ参照

ログを参照するためにもう一度、コンテナを起動します。このとき、オプションの「-d」を加えることによって、バックグラウンド実行することができるのでそのように実行します。

$ docker container run -d -p 8000:8000 --name webrick sample/webrick:latest

起動していることを確認します。

$ docker container ls

そして、ログを出力するために、もう一度ブラウザを開き「localhost:8000」にアクセスをします。

準備が整ったので、ログを参照してみましょう。

$ docker container logs webrick

これでログの参照ができました。

7. コンテナ内のコマンド実行

コンテナ内のコマンドを実行するには、「exec」を使います。

$ docker container exec webrick ruby -v

コンテナ内のrubyのバージョン情報が確認できました。

8. コンテナのクリーン

以下のコマンドを実行します。

$ docker system prune -a

コンテナすべての一覧を確認します。

$ docker container ls -a

起動中のコンテナ以外が削除されてクリアになりました。

これで今回紹介するDockerの基本的なコマンド操作は以上となります。

関連記事

  1. Docker

    WSL2上のUbuntuの中でDockerを動かすには?

  2. 【Docker】初めてのDocker#1(環境構築)

  3. Docker

    【Docker】DockerでMySQLを起動

  4. 【Docker】初めてのDocker#3(docker-compose…

最近の記事

  1. AWS
  2. AWS
  3. AWS
  4. flutter

制作実績一覧

  1. Checkeys