El contenedor docker NGINX se detiene inmediatamente

Estoy empezando a conocer Docker y nginx en docker. Quiero usar mis propios archivos estáticos personalizados y mi propio nginx.conf, así que he creado un archivo docker:

FROM nginxRUN rm /etc/nginx/nginx.confCOPY /nginx.conf /etc/nginx/nginx.confCOPY / /usr/share/nginx/html# Expose portsEXPOSE 80

Y mi nginx.conf:

#user  nobody;worker_processes  auto;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"'                       '$server_name to: $upstream_addr: $request';    access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    server {        listen       8080;        server_name  127.0.0.1;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;            try_files $uri /index.html;            include       mime.types;                   }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

Estoy construyendo esto con:

docker build --no-cache -t nginx-custom .

Y ejecutarlo con:

docker run -d -p 8080:80 --name webserver nginx-custom

Pero se construye, y luego se ejecuta, pero se detiene de inmediato, así que si verifico con

docker ps -a

Puedo ver que salió hace 1 segundo.Traté de usar CMD /usr/sbin/nginx -g "daemon off;" o deamon off; en la configuración de nginx, o use CMD ["nginx", "-g", "daemon off;"] no importa lo que haga, son solo salidas justo después de correr.

Debe definir la ruta correcta para sus registros nginx.

/var/log/nginx/error.log y /var/log/nginx/access.log

Intente ejecutarlo con el siguiente comando:-

docker run -d -p 8080:80 --name webserver -it nginx-custom /bin/bash

cuando intenté ejecutar el contenedor en modo interactivo, obtuve:

[emerg] 1#1: open () "/etc / nginx / logs / acceso.registro " fallido (2: No existe tal archivo o directorio) nginx: [emerg] open () "/etc / nginx / logs / access.registro " error (2: No existe tal archivo o directorio)
luego agregué:
‘EJECUTAR mkdir-p /etc / nginx / logs`’ y funciona

donde el nginx.archivo conf ubicado en su PC?

si se encuentra en el mismo directorio, debe cambiar el comando a

COPIA ./ nginx.conf /etc / nginx / nginx.conf

el nginx.conf se encuentra al lado del Dockerfile, intenté cambiar la COPIA, pero aún sale

Para depurar la configuración, puede ejecutar el contenedor en modo interactivo.

docker run-it-p 8080:80 name nombre servidor web nginx-personalizado

luego, dentro del contenedor, puede verificar su configuración de nginx con el comando ’ nginx-t`

Entonces, su ruta de registro es incorrecta
puede crearlo en el archivo docker o dejar el valor predeterminado ’ /var/log/nginx / error.log ‘’ /var / log / nginx / acceso.registro`