Puncte:0

Containerul apache2 docker scrie jurnalele pe gazda mea ca utilizator root

drapel cl

Rulez un container docker apache2 pe caseta mea ubuntu, dar continuă să scrie jurnalele în sistemul de operare gazdă. Detalii mai jos:

samples/docker/apache2/Dockerfile

DIN php:5.6.34-apache
COPIEAZĂ ./sites-available/mysite.conf /etc/apache2/sites-available/mysite.conf
RUN a2dissite 000-default.conf
#RUN a2dissite default-ssl.conf
RUN a2ensite mysite.conf

cu:

samples/docker/apache2/sites-available/mysite.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName localhost
    ServerAlias localhost
    #DocumentRoot /var/www/html
    DocumentRoot /var/www


    ErrorLog /dev/stderr
    CustomLog /dev/stdout combined

    #ErrorLog ${APACHE_LOG_DIR}/error.log
    #CustomLog ${APACHE_LOG_DIR}/access.log combined
    
</VirtualHost>

pe care le construiesc/rulez cu:

samples/docker-compose.yaml:

versiunea: „3.8”
Servicii:
  apache2-php:
    container_name: apache2-php-container
    imagine: apache2-php-image
    construi:
      context: ./docker/apache2
    porturi:
      - „8082:80”

Dar Buturuga, alerga și Lacăt folderele sunt create pe gazda mea sub folderul utilizator rădăcină de mai sus fișierul meu docker-compose.yaml:

$ ll
total 60
drwxrwxr-x 3 utilizator utilizator 4096 15 noiembrie 09:22 mostre/
drwxr-xr-x 3 root root 4096 15 noiembrie 10:40 blocare/
drwxr-xr-x 3 root root 4096 15 noiembrie 10:40 log/
drwxr-xr-x 3 root root 4096 15 noiembrie 10:40 rulare/

cu:

âââ jurnal
â  âââ apache2
â  âââ error.log
â  âââ other_vhosts_access.log

Am încercat și sugestii aici:

Scrieți jurnalele Apache2 în stdout/stderr?

dar nu are nici un efect.

De ce sunt acele foldere/fișiere create în acea locație pe gazda mea și cum configurez containerul apache2 să scrie doar jurnalele în interiorul containerului și nu pe gazda mea?

sgohl avatar
drapel ca
ar trebui să furnizați întotdeauna comenzile pe care le executați
Puncte:1
drapel ca

Acest lucru chiar nu este posibil. Dacă nu definiți volumele în docker-compose, containerul nu poate scrie nimic în sistemul de fișiere al gazdei.

Demonstrează asta cu

> docker inspectează apache2-php-container | jq .[].Monturi
> docker inspectează apache2-php-container | jq .[].Volume

De asemenea, puteți dovedi asta prin crearea unui fișier în folderul jurnal al gazdei dvs. de rău augur și încercați să-l găsiți în container (nu ați menționat unde este sau ar trebui să fie localizat acest folder în containerul dvs. Notă: chiar dacă un container ar scrie fișierele pe gazdă, ar fi, de asemenea, accesibil din interiorul containerului pe o cale, desigur - pentru că trebuie montat undeva)

Chiar am reprodus ierarhia dvs. și am verificat că nu sunt create foldere.

samples > docker-compose build
Construirea apache2-php
Trimiterea contextului de construcție către demonul Docker 3.584kB
...
Etichetat cu succes apache2-php-image:latest
samples > docker-compose up -d
Crearea rețelei „samples_default” cu driverul implicit
Crearea apache2-php-container... gata
> copac
.
âââ mostre
    âââ docker
    â  âââ apache2
    â  âââ Dockerfile
    â  âââ site-uri disponibile
    â  âââ mysite.conf
    âââ docker-compose.yaml

4 directoare, 3 fișiere

Înregistrarea merge chiar la ieșirea jurnalelor docker:

> curl -I http://localhost:8082/bla
HTTP/1.1 404 Nu a fost găsit
Server: Apache/2.4.10 (Debian)

apache2-php-container | 172.21.0.1 - - [17/Nov/2021:12:34:16 +0000] „HEAD /bla HTTP/1.1” 404 140 „-” „curl/7.69.1”

S-ar putea să ai un fel de cache care lovește acolo. Încercați să vă curățați sistemul (sistem docker prune -a -f (atenție!)) sau testați-l pe alt sistem neatins.

bacsis: docker-compose build --no-cache

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.