我开始了解 Docker 和 docker 中的 nginx。我想使用自己的自定义静态文件和自己的 nginx.conf,所以我创建了一个 docker 文件:
FROM nginx
RUN rm /etc/nginx/nginx.conf
COPY /nginx.conf /etc/nginx/nginx.conf
COPY / /usr/share/nginx/html
# Expose ports
EXPOSE 80
我的 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;
}
}
}
我正在用以下方式构建它:
docker build --no-cache -t nginx-custom .
并运行它:
docker run -d -p 8080:80 --name webserver nginx-custom
但是它构建并运行,但立即停止,所以如果我检查
docker ps -a
我可以看到它在 1 秒前就退出了。我尝试在 nginx conf 中使用CMD /usr/sbin/nginx -g "daemon off;"
或,或者使用无论我做什么,它都会在运行后立即退出。deamon off;
CMD ["nginx", "-g", "daemon off;"]
答案1
您必须为您的 nginx 日志定义正确的路径。
/var/log/nginx/error.log
和 /var/log/nginx/access.log
答案2
尝试使用以下命令运行它:-
docker run -d -p 8080:80 --name webserver -it nginx-custom /bin/bash