Docker运行Nginx服务器
一、获取Docker容器的Nginx镜像
二、创建Docker容器宿主机挂载目录
# 创建挂载目录,-v 显示创建的目录名 [root@idclooknet ~]# mkdir -vp /opt/docker_cfg/nginx/html /opt/docker_cfg/nginx/logs /opt/docker_cfg/nginx/conf
三、添加Nginx基本配置到挂载的配置文件
#新建nginx配置文件 nginx.conf,并添加配置 [root@idclooknet conf]# touch nginx.conf #nginx配置文件的配置如下 [root@idclooknet conf]# cat 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; }
四、启动Docker容器下Nginx服务器
[root@idclooknet nginx]# docker run -p 80:80 --name mynginx -v $PWD/html:/usr/share/nginx/html:ro -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v $PWD/logs:/var/log/nginx -d nginx
五、浏览器访问Nginx网页目录
访问成功,nginx版本 1.13.12 ,因为挂载的目录还没有放任何文件,是一个空目录,所以访问显示是403。
六、其它
1、在启动Docker容器的时候,可能发现执行运行命令后马上停止,也没有显示任何错误信息,这时候很难定位问题所在,可以查看Docker日志:
[root@localhost nginx]# docker logs nginxcontainer 2018/06/05 16:19:53 [emerg] 1#1: unknown directive "er" in /etc/nginx/nginx.conf:1 nginx: [emerg] unknown directive "er" in /etc/nginx/nginx.conf:1
这样就可以快速找到出问题的地方,如上实例,显而易见配置文件出现错误,更多Docker日志命令参数可以查阅官方文档:https://docs.docker.com/engine/reference/commandline/logs/
2、进入运行中容器的内部
[root@idclooknet ~]# docker start df5bf8ba4fd1 [root@idclooknet ~]# docker exec -it df5bf8ba4fd1 /bin/bash root@df5bf8ba4fd1:/var/log/nginx# exit #退出容器内部