最初のコンテナを実行する

DockerBeginner
オンラインで実践に進む

はじめに

「最初のコンテナを実行する」チャレンジへようこそ!すでに hello-world コンテナの実行方法は学習済みですね。次は一歩進んで、別のコンテナを実行してみましょう。このチャレンジでは、Docker のスキルを活かして docker/getting-started イメージを起動します。このイメージは、コンテナ内で小さな Web サーバーを立ち上げるものです。

新しいコンテナを実行する

タスク

タスクはシンプルです:

  1. docker/getting-started イメージに基づいて Docker コンテナを実行してください。

要件

このチャレンジを完了するには、以下の条件を満たす必要があります:

  1. docker run コマンドを使用してコンテナを起動すること。
  2. イメージには docker/getting-started を使用すること(すでにプル済みです)。
  3. ~/project ディレクトリでコマンドを実行すること。

コンテナの実行に成功すると、Docker はコンテナをフォアグラウンドで起動するため、ターミナルはコンテナのログにアタッチされた状態になります。これらのログは、docker/getting-started 内の Nginx Web サーバーから出力されるものです。

/docker-entrypoint.d/ ディレクトリが空ではないという警告メッセージが表示されても、心配する必要はありません。

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/10/29 09:26:17 [notice] 1#1: using the "epoll" event method
2024/10/29 09:26:17 [notice] 1#1: nginx/1.23.3
2024/10/29 09:26:17 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2024/10/29 09:26:17 [notice] 1#1: OS: Linux 5.15.0-56-generic
2024/10/29 09:26:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/10/29 09:26:17 [notice] 1#1: start worker processes
2024/10/29 09:26:17 [notice] 1#1: start worker process 31
2024/10/29 09:26:17 [notice] 1#1: start worker process 32

新しいターミナルウィンドウを開き、docker ps コマンドを使用してコンテナが実行中であることを確認できます。

docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES
f3f3b3b3b3b3   docker/getting-started   "/docker-entrypoint.…"   1 minute ago   Up 1 minute   80/tcp   festive_mendel

注: docker run docker/getting-started を実行した最初のターミナルはそのままにしておいてください。Ctrl+C を押したりターミナルを閉じたりすると、コンテナは停止します。docker ps を実行するには別のターミナルを開くか、コンテナをバックグラウンドで実行したい場合は docker run -d docker/getting-started を使用してください。

まとめ

このチャレンジでは、新しいコンテナを実行することで Docker のスキルを広げました。docker run コマンドを使用して docker/getting-started イメージを起動し、コンテナ内で Web サーバーを立ち上げてターミナルに起動ログを出力させました。また、フォアグラウンドで起動したコンテナは、停止するまでターミナルがアタッチされた状態になることも確認しました。この演習を通じて、コンテナの起動方法や docker ps などの Docker コマンドを使用して実行状況を確認する基本操作を習得しました。

✨ 解答を確認して練習