1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerを使ってみよう【インフラエンジニアへの道3日目】

Last updated at Posted at 2025-04-07

読まなくていいやつ

インフラエンジニアへの道3日目です。今日はDockerを使ってみます。
本日の参考図書です。
https://amzn.asia/d/fqzjTWy
前半がDockerについての説明で、後半がハンズオンになっています。
WindowsとMacそれぞれDocker Desktopのインストール手順が書かれていて丁寧です。
「Dockerとはなんぞや」というところは本に記載されているので、この記事では実際に手を動かしてみた記録としてやっていきます。

Dockerでコンテナを作成するには

Dockerの操作は基本的にdockerコマンドで行います。チートシートを見つけました。
Docker Desktopでもコンテナの起動や停止はできますが、細かい操作やオプションの指定まではできないため、ほとんどコマンド操作になります。

Dockerコマンド

docker 対象 操作

例えば、コンテナを作成・実行するコマンドは

docker container run

で、対象が「container」で操作「run」です。操作以降にはパラメータやオプションを指定します。

dockerコマンドでApacheのコンテナを作成する

使用するイメージ
イメージ名:httpd
Docker hubのURL:https://hub.docker.com/_/httpd

docker container run --name apache01 -p 8080:80 -d httpd

コンテナが作成されたか確認するためにhttp://localhost:8080 にアクセスします。
image.png
Docker Desktopでも「apache01」が実行中になっていることが確認できました。
image.png

コンテナ停止する

コンテナを作ってみたいだけだったので停止します。

docker container stop apache01

先程のURL (http://localhost:8080) を再度確認するとアクセスできなくなっています。
image.png

コンテナを削除する

コンテナを作ってみたかっただけなので、削除します。

docker container rm apache01

Docker Desktopから削除されたことが確認できました。
image.png

Docker Compose

大きな声で叫んだら必殺技になりそうなIT用語(?)として憧れの「ドッカーコンポーズ」です。
Docker Composeは、一度に複数のコンテナを作成、実行できます。
Docker Composeでは、どういうコンテナを作成するかを設定するファイルとしてYAMLファイルが必要です。Docker ComposeにおけるYAMLファイルのデフォルトの名称はcompose.yamlです。
ドッカーコンポーズの手順

  1. 作成したいコンテナの情報を整理する
    作成したいコンテナに必要なソフトウェアを整理します。どのソフトウェアがインストールされている環境がほしいのか、どのバージョンを使うのかという点を整理しておきます。
  2. Docker Composeファイルの作成
    整理した情報を元にDocker Composeファイルを作成する。
  3. コマンドを使ってコンテナを作成・実行する
    作ったファイルをフォルダに配置したら、docker compose up -dコマンドを実行すると、ファイルに記載された情報に基づいてコンテナが作成される。

Docker Composeでコンテナを作ってみる

1.Apacheコンテナの情報を整理する

コンテナ作成に必要な項目 設定値
使用するイメージ httpd.バージョン2.4
ポート番号 8080:80

2.Docker Composeファイルの作成

compose.yamlファイルを作成します。デフォルトで、カレントフォルダにあるcompose.yamlファイルが読み込まれます。また、デフォルトでフォルダ名がDocker Composeのプロジェクト名に使われます。プロジェクト名によって個々の環境が分離されるので、何のためのコンテナ・環境であるのかわかりやすい名前をつけておきます。今回は、docker-tutorialにしておきました。

services:
  web:
    image: httpd:2.4
    ports:
      - "8080:80"

yaml形式は、半角スペースの過不足があるだけでエラーになるので気をつけて入力します。タブではなく、あくまで半角スペースを使用して、ファイル全体でインデントには半角スペースを2つ使うというルールで統一する必要があります。
また、キーのあとのコロンに続けて値を記述する場合は、コロン(:)のあとに半角スペースが1つ以上必要です。ただし、値を次の行に書く場合は半角スペースがなくても大丈夫です。

3. コマンドを使ってコンテナを作成・実行する

compose.ymlを配置している階層で以下のコマンドを実行します。

docker compose up -d

docker compose upコマンドは、ローカルに対象のイメージがない場合にイメージをプルしてからコンテナを作成・実行するコマンドです。
-dはコンテナをバックグラウンドで実行させるオプションです。これを使わないと、コンテナのログが画面上に出力され、続けてコマンドが打てなくなります。

4.コンテナが作成されたか確認する

実行中のコンテナを確認するコマンドを実行します。

docker container ls

image.png
STATUS項目がupになっていれば実行中です。

5.コンテナを起動・停止する

docker compose stop

コンテナを停止することができました。
image.png
再度起動してみます

docker compose start

コンテナが再起動しました。
image.png
※このコマンドはすでにあるコンテナを起動するもので、コンテナを作成しているわけではないです。

6.コンテナの後始末

使い終わったコンテナを削除します。

docker compose down

downコマンドの場合、コンテナが実行中であっても使用可能で、コンテナに紐づくネットワークも自動で削除します。
image.png
イメージも削除してみます。

docker compose down --rmi all

image.png

まとめ

Dockerを使って、実際にコンテナの作成・停止・削除を体験しました。
Docker Composeを使うことで、複数のコンテナを簡単に管理できることが実感できました。
基本的な操作を試しただけでも、Dockerの便利さがよくわかりました。
本の内容に沿って手を動かすだけでDockerの概要がわかりやすく、良書だと思いました。

学んだこと

  • docker container run コマンドで、指定したイメージからコンテナを作成・起動できる。
  • docker composeを使うと、複数のコンテナを一度に管理できることが便利。
  • YAMLファイルにおけるインデントや書き方に注意が必要。スペースやコロンの使い方は特に重要。
  • コンテナの状態確認や管理はコマンドラインで行い、Docker Desktopで可視化できる点も安心。

次にやりたいこと

たまにはデータエンジニアっぽいことを併せてみたいので、Dockerを使ってdbt環境を構築してみます。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?