计算机知识分享网

【nginx】Docker安装并运行Nginx教程

新建文件夹映射目录
mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf
执行安装命令
docker run --rm -d -p 80:80  -p 443:443  --name nginxjiaochengziyuan   -v /home/nginx/www:/usr/share/nginx/html   -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf   -v /home/nginx/logs:/var/log/nginx   nginx
执行完毕之后,删除/conf目录下数据,然后新增nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}



http {
    include       /etc/nginx/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"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
		server_name  www.jiaochengziyuan.cn
        #charset koi8-r;
        charset utf-8;   #"没错就是这里"
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://127.9.9.1/web/;
        }  


        
    }
 
}
执行docker 重启或者启动的命令即可。

如果出现类似以下错误

docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/appdata/nginx/conf/nginx.conf\\\" to rootfs \\\"/var/lib/docker/aufs/mnt/dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0\\\" at \\\"/var/lib/docker/aufs/mnt/dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
出现的原因是 $PWD/conf/nginx.conf 是一个目录,而不是文件

解决方法就是删除nginx.conf 目录,然后新建一个nginx.conf 文件就可以了。

#Nginx