skip to Main Content

I use Docker to build an Apache image, and then use docker-compose to run it. I set up Apache access.log and error.log and want to store them outside of the container. currently, I use Volumes but it stores the data both in container and host.

docker-compose.yml

version: '2'

services:
  web:
    image: apache
    build: .
    container_name: my-image
    volumes:
        - "/var/log/my-app:/var/log/apache2"
    restart: always
    ports:
      - "8000:80"

My question is how to only store apache log data in a host, and It woule be better if there is a way to stream apache log data to stdout so that I don’t need to store in the host.

Thanks in advance!

2

Answers


  1. Check this post for the Apache configuration:

    https://serverfault.com/questions/711168/writing-apache2-logs-to-stdout-stderr

    Then you can inspect your logs with

    docker logs <container>
    
    Login or Signup to reply.
  2. Volumes but it stores the data both in container and host.

    Not really, it should only store data in the host (and makes it visible in the container through a bind mount)

    if there is a way to stream apache log data to stdout

    Possible yes, through configuration, but that would not be persistent.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search