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标签内容