あめがえるのITブログ

頑張りすぎない。ほどほどに頑張るブログ。

docker-composeで複数のコンテナを起動してみた

雨ばっかでいやになる。。( ;∀;)

docker-composeとは

複数のコンテナを効率的に管理するためのツール。
Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行える。

docker-composeの使い方

docker-compose.yamlファイルに各コンテナに対する定義を記載し、コンテナ起動時にdocker-compose.yamlファイルをもとにコンテナの設定を行う。

docker-composeパラメータ

  • service:アプリケーションの単位を指す
  • image:Dockerイメージを設定
  • build:Dockerfileファイルのディレクトリを指定しDockerfileからコンテナを作成
  • container_name:コンテナ名を指定
  • ports:待ち受けポート、コンテナ転送ポートを指定
  • command:コマンドを実行
  • expose:Docker内の同一ネットワークに対してポートを公開する
  • publish:コンテナのポートをホストマシンに公開する
  • volumes: パスをボリュームとしてマウント
  • environment:環境変数を設定
  • depends_on:依存関係を作成

やること

ubuntu22.04サーバにdocker-composeのインストールおよび、docker-composeからコンテナを作成する。

環境

Ubuntu22.04[
  dokcer 23.0.1
]

実践!

1.docker-composeインストール
 1-1.dockerサーバへログインし、下記を入力

# docker version | grep version
 Version:           23.0.1

# apt-get update
Failed to allocate directory watch: Too many open files
Hit:1 https://download.docker.com/linux/ubuntu jammy InRelease
Hit:2 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
・・・

# apt-get install docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
・・・

# docker compose version
Docker Compose version v2.18.1

2.compose.yamlファイル作成

# vi compose.yaml
version: '3'
services:
  db:
    image: postgres
  web:
    image: tomcat
    ports:
      - "8080:8081"
    depends_on:
      - db

3.コンテナ起動

# docker compose up -d
[+] Building 0.0s (0/0)
WARN[0000] Found orphan containers ([tomcat1]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
[+] Running 1/0
[+] Running 1/2ot-db-1   Starting                                          0.1s
[+] Running 1/2ot-db-1   Starting                                          0.2s
・・・

# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
fa826cb3d1d2   tomcat                 "catalina.sh run"        5 seconds ago   Up 4 seconds   8080/tcp, 0.0.0.0:8080->8081/tcp, :::8080->8081/tcp   root-web-1
42291505050e   tomcat                 "catalina.sh run"        3 minutes ago   Up 3 minutes   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp             tomcat1

4.コンテナ停止

# docker compose down
[+] Running 3/1
 ✔ Container root-web-1  Removed                                           0.2s
 ✔ Container root-db-1   Removed                                           0.0s



感想

docker-composeはいろいろできそうなので、試していく(*´ω`*)」