浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Docker】今動いているコンテナのログビューアDozzleの紹介

amir20/dozzle: Realtime log viewer for docker containers.
Dockerで立ち上げたサービスのログをWeb上から簡単に見れる「Dozzle」 – Qiita
 Dozzleは手っ取り早くコンテナのログを見るためのビューアです。あまりリッチでも、セキュアでもありませんが手軽です。使い方はDockerらしくコンテナの起動です。公式に紹介されているれ例にはワンライナーコマンドである次や

 docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:8080 amir20/dozzle:latest

コンテナとしてまとめる次が

version: "3"
services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    environment:
      - DOZZLE_TAILSIZE=100
      - DOZZLE_FILTER=status=running
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 9999:8080

あります。
 Dozzleの様なビューア抜きでログを見るのは時として億劫です。一応

docker-compose logs コンテナ名

でもできますが複数のプロジェクトを開いているなどでコンテナが多い時はあまりしたくありません。Dozzleを使うと次の様になります。

 この一画面で複数のプロジェクトで開いている(別々のdocker-compose.ymlに記述された)dockerコンテナのログを一度に見ることができます。
 Dozzleを使う時はプロジェクト間で共有するつもりのないコンテナはdocker-compose.yml内ではconteinar_nameを未指定にすると扱いやすいです。

  mysql:
# 複数プロジェクトで共通のmysqlコンテナを使うならばcontainer_nameをつける
    container_name: "mysql"
    build: ./docker/mysql
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: my_database

  nginx:
# 各プロジェクトで別々のnginxコンテナを使うならばcontainer_nameをつけない
# container_nameを未指定にするとコンテナ名には自動で`${現在フォルダの名前}_${Service名}_${連番}`が割り当てられます
# ※詳しい仕様は知りませんが自分の環境では特別設定をいじらずそんな感じで名前割り当てが動いています
    depends_on:
      - app
    ports:
      - ${DOCKER_WEB_PORT:-80}:80
      - ${DOCKER_DESIGN_PORT:-808}:808
    build: ./docker/nginx
    volumes:
      - ${PROJECT_ROOT_PATH:-./}:/work
      - ./docker/log/nginx:/var/log/nginx
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    environment:
      - TZ=${APP_TZ}
  • この記事いいね! (0)