1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerの基本的な操作とDocker Composeの活用例

Last updated at Posted at 2023-06-08

はじめに

2022年9月から本格的にプログラミングを学習し、2023年4月に京都のWeb系ベンチャ企業でフロントエンジニアとして入社。
現在エンジニア歴2ヶ月になります。

実務では主にWordpress, JavaScript, Laravelを使用してます。

この記事では、Dockerの基本的なコマンドとその使用例、そしてDocker Composeについて説明します。

この記事の対象者

  • Dockerについてある程度知識のある方
  • Dockerコマンドを確認したい方
  • Dockerコマンドを忘れた方

開発環境

mac Ventura 13.4
Visual Studio Code
Docker version 20.10.22

Dockerの基本的なコマンドと使用例

以下に、Dockerでよく使用される基本的なコマンドとその使用例を示します。

Docker image pull

このコマンドは、Docker Hubから特定のDockerイメージを取得します。例えば、次のコマンドはUbuntuの最新のイメージを取得します。

docker image pull ubuntu:latest

docker image build

このコマンドは、Dockerfileを元に新しいDockerイメージをビルドします。以下のコマンドは、現在のディレクトリのDockerfileを使用してmyimageという名前のイメージをビルドします。

docker image build -t myimage .

docker container create

このコマンドは、特定のイメージから新しいコンテナを作成します。次のコマンドは、myimageというイメージからmycontainerという名前の新しいコンテナを作成します。

docker container create --name mycontainer myimage

docker container start

このコマンドは、特定のコンテナを開始します。以下のコマンドは、mycontainerという名前のコンテナを開始します。

docker container start mycontainer

docker container stop

このコマンドは、特定のコンテナを停止します。以下のコマンドは、mycontainerという名前のコンテナを停止します。

docker container stop mycontainer

docker container rm

このコマンドは、特定のコンテナを削除します。以下のコマンドは、mycontainerという名前のコンテナを削除します。

docker container rm mycontainer

docker container run

このコマンドは、特定のイメージから新しいコンテナを作成し、それを開始します。以下のコマンドは、myimageというイメージから新しいコンテナを作成し、それを開始します。

docker container run --name mycontainer myimage

docker container restart

このコマンドは、特定のコンテナを再起動します。以下のコマンドは、mycontainerという名前のコンテナを再起動します。

docker container restart mycontainer

これらのコマンドを組み合わせることで、より複雑な操作を行うことができます。

Docker Composeとdocker-compose.ymlについて

Docker Composeは、複数のコンテナを一度に管理するためのツールです。docker-compose.ymlという設定ファイルを作成することで、複数のコンテナの設定を一元管理することができます。以下に簡単なdocker-compose.ymlの例を示します。

version: '3'
services:
  web:
    image: 'nginx:latest'
    ports:
      - '80:80'
  db:
    image: 'mysql:latest'
    environment:
      MYSQL_ROOT_PASSWORD: password

この設定ファイルでは、webサービスとしてnginxのコンテナ、dbサービスとしてmysqlのコンテナを定義しています。それぞれのサービスで使用するイメージや環境変数、公開するポートなどを指定しています。

Docker Composeのメリット

Docker Composeを使用すると、複数のコンテナの設定を一つの設定ファイルで管理できるため、手作業で各コマンドを実行するよりも簡単かつ効率的にコンテナを管理できます。また、設定ファイルをソースコードとともにバージョン管理システムで管理することで、コンテナの設定を他の開発者と共有したり、過去の設定に簡単に戻ることも可能になります。

また、Dockerのベストプラクティスとして、一つのコンテナには一つの役割を持たせるという原則があります。この原則に従うと、それぞれのコンテナが独立して動作するため、一つのサービスが問題を起こしても他のサービスに影響を及ぼさないという利点があります。Docker Composeはこの原則に従って複数のコンテナを管理するのに適したツールです。

Docker Composeを使用した複数コンテナ操作の手順

Docker Composeでは、docker-compose.ymlに定義されたすべてのサービス(コンテナ)を一度に操作することができます。以下に主要なコマンドとその手順を説明します。

docker-compose build

このコマンドは、docker-compose.ymlに定義されたサービスをビルドします。以下のコマンドは、すべてのサービスをビルドします。

docker-compose build

docker-compose up

このコマンドは、docker-compose.ymlに定義されたすべてのサービスを起動します。以下のコマンドは、すべてのサービスを起動し、ログをターミナルに出力します。

docker-compose up

docker-compose stop

このコマンドは、docker-compose.ymlに定義されたすべてのサービスを停止します。以下のコマンドは、すべてのサービスを停止します。

docker-compose stop

docker-compose rm

このコマンドは、docker-compose.ymlに定義されたすべてのサービスのコンテナを削除します。以下のコマンドは、すべてのサービスのコンテナを削除します。

docker-compose rm

docker-compose restart

このコマンドは、docker-compose.ymlに定義されたすべてのサービスを再起動します。以下のコマンドは、すべてのサービスを再起動します。

docker-compose restart

docker-compose down

このコマンドは、docker-compose.ymlに定義されたすべてのサービスを停止し、それらのコンテナとネットワーク、ボリュームを削除します。以下のコマンドは、すべてのサービスを停止し、それらのリソースを削除します。

docker-compose down

また、Docker Composeではdocker-compose pullコマンドを頻繁に使用することは少ないです。これは、docker-compose upまたはdocker-compose buildを実行する際に、必要なイメージがローカルにない場合は自動的にDocker Hubからイメージを取得(pull)するためです。

その他のよく使う操作について

DockerとDocker Composeには、上記の基本的な操作以外にも多くの便利なコマンドがあります。

docker-compose exec

このコマンドは、動作中のコンテナ内でコマンドを実行します。例えば、以下のコマンドは、動作中のwebサービスのコンテナ内でbashを起動します。

docker-compose exec web bash

docker-compose ps

このコマンドは、Docker Composeによって管理されているコンテナの状態を表示します。以下のコマンドは、すべてのコンテナの状態を表示します。

docker-compose ps

docker-compose logs

このコマンドは、コンテナのログを表示します。以下のコマンドは、webサービスのコンテナのログを表示します。

docker-compose logs web

docker system prune

このコマンドは、使用しなくなったDockerリソース(コンテナ、ネットワーク、イメージ)を削除します。これにより、システムのディスク領域を解放できます。ただし、使用中のリソースやタグ付きのイメージは削除されません。以下のコマンドは、未使用のリソースを削除します。

docker system prune

このコマンドを実行すると、未使用のリソースが削除されますが、一度削除されたリソースは復元できません。そのため、削除前に重要なデータが存在しないか確認してから実行することをお勧めします。

まとめ

DockerとDocker Composeは、ソフトウェア開発の効率を大幅に向上させるツールです。Docker Composeを使用すれば、複数のコンテナを一元管理し、その設定を他の開発者と簡単に共有することができます。また、各コマンドを理解し活用することで、イメージやコンテナのライフサイクルを効果的に管理することが可能となります。これらの知識を活用し、効率的な開発環境を構築してみてください。

1
3
0

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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?