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}