Docker运行Nginx
如果我们有自己的服务器,就经常肯定会使用到Nginx,下面我们就用Docker来部署一个Nginx
安装Docker
移除旧版本
1.查询安装过的包
1  | yum list installed | grep docker  | 
2.删除安装的软件包
1  | yum -y remove docker-engine.x86_64  | 
3.删除镜像/容器等
1  | rm -rf /var/lib/docker  | 
安装一些必要的系统工具:
1  | sudo yum install -y yum-utils device-mapper-persistent-data lvm2  | 
添加软件源信息:
1  | sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  | 
更新 yum 缓存
1  | sudo yum makecache fast  | 
安装 Docker-ce:
1  | #安装 Docker  | 
启动 Docker 后台服务:
1  | sudo systemctl start docker  | 
测试运行 hello-world
1  | docker run hello-world  | 
出现hello world就证明安装正常了
安装 Nginx
安装nginx前,我们现在本地建立几个文件,用于存放nginx的配置文件等
1  | # 切换到服务器根目录  | 
上面的 dockerData 可以换成自己喜欢的名字
1  | dockerData/nginx 用于存放 docker 下 nginx 自定义文件  | 
启动 nginx
1  | docker run --name nginx -p 80:80 -d --rm nginx  | 
如果你没有备案,可以将上面的80:80换成8081:80,因为这个东西一会儿也要删掉,所以加上--rm参数,命令执行玩后通过 docker ps 查看 nginx 是否在运行,在运行的情况下访问你的域名加端口号查看是否正常安装,80直接省略。如下表示访问成功
导出配置文件
1  | docker cp nginx:/etc/nginx/nginx.conf /dockerData/nginx/conf/nginx.conf 导出配置文件 nginx.conf  | 
执行 docker stop nginx ,会自动删除现在的 nginx 容器,然后执行如下命令重新启动一个 nginx 容器
1  | docker run -d -p 80:80 --name nginx \  | 
1  | -v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ 挂载配置文件nginx.conf  | 
访问你的域名,你会发现报错了
这时我们可以前往 /dockerData/nginx/logs 下查看日志文件
1  | 2019/08/05 14:57:54 [error] 6#6: *3 directory index of "/usr/share/nginx/html/" is forbidden, client: 121.32.33.217, server: localhost, request: "GET / HTTP/1.1", host: "www.jinjianh.com"  | 
因为 /usr/share/nginx/html/ 被挂载到了服务器上面的/dockerData/nginx/www目录下,原来的欢迎页面在 dockerData/nginx/www 是没有的,所有就报错了,这里我们随便建一个。
1  | # 打开项目文件  | 
再次访问我们的域名就可以看到我们刚刚写的h1标签内容