Docker中运行nginx并挂载本地目录到镜像中
1.1 从hup上pull镜像
docker pull nginx
1.2 创建将要挂载的目录
mkdir -p /data/nginx/{conf,conf.d,html,logs}
1.3 先要有配置文件才能启动容器
1.3.1 新建Nginx所需的配置文件
vim /data/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; }
vim /data/nginx/conf.d/default.conf
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; #网站的根目录 index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
1.4 启动容器
#将容器中nginx的80端口映射到本地的8000端口,并命令容器名称为nginx8000 docker run --name nginx8000 -d -p 8000:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /data/nginx/conf.d:/etc/nginx/conf.d -d nginx
注意:因为docker的nginx服务访问的页面文件在/usr/share/nginx/html中,所以上面的配置文件的root项目根目录,应该设定在这个目录下面。
1.5 查看启动的容器
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 431d658df2c0 nginx "nginx -g 'daemon of…" 2 days ago Up 3 seconds 0.0.0.0:8000->80/tcp nginx8000
1.6 网页访问nginx
输入:http://[主机IP]:8000