JAVA服务器开发

服务器快速部署--使用Docker部署Nginx

2019-05-31  本文已影响21人  Felix_

虽然休假在家,但是也不能停止学习的脚步。早就被服务器的部署工作烦的头疼,也早就知道了Docker的存在,不过一直没有时间使用,趁着休假赶紧给自己补上一课,记录Docker部署Nginx的过程和坑。
本次是在虚拟机安装的CentOS上进行的部署,首先安装Docker

yum -y install docker

安装完毕后启动docker

systemctl start docker

添加开机启动项

systemctl enable docker

到这里,docker的安装就算是完成了,并且会随系统重启开机启动。接下来部署nginx。首先,拉取nginx镜像

docker pull nginx

拉取完成以后,启动nginx

docker run -p 80:80 --name felix-nginx -d nginx

这里-p为docker映射端口,--name为容器命名,-d为后台运行
启动之后先查看是否正常运行

docker ps

下图表示正在运行



接下来访问网页进行测试,这里我做了DNS反向代理,所以直接通过域名就可以访问到我的nginx



nginx启动并运行正常。
但是有个问题,如果要配置nginx怎么办,难不成每次从容器里面copy一份配置文件,修改以后再copy进去?可以是可以,但是太麻烦,我们可以直接映射本地的文件夹到容器内部。首先在CentOS根目录里面创建1个nginx文件夹
mkdir nginx

然后进入nginx文件夹并创建三个额外的文件夹

cd nginx
mkdir conf
mkdir html
mkdir log

好了,切回根目录,拷贝nginx的配置文件到我们自建的文件夹内

cd /  #切换到根目录
docker cp c85:/etc/nginx/nginx.conf /nginx/conf
docker cp c85:/etc/nginx/conf.d /nginx/conf/conf.d

配置文件已经就位,现在进入html目录创建一个自定义的页面出来

cd /nginx/html
vi index.html

在index.html里面输入以下内容

<h1>felix nginx working,wait for load balance</h1>

保存退出,现在我们来启动一个新的容器,并且映射我们创建的文件到容器中

docker run -p 80:80 --name felix-nginx \
-v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx/conf/conf.d:/etc/nginx/conf.d \
-v /nginx/html:/usr/share/nginx/html \
-v /nginx/log:/var/nginx/log \
-d nginx

OK,此时,查看正在运行的容器

docker ps

很好,已经正常运行了,现在访问nginx服务器,会惊喜的发现

403 Forbidden

Fuck,什么情况,什么都搞好了,你跟我说Forbidden,原因是

CentOS7中的安全模块selinux把权限禁掉了,主要是挂载的目录没有权限的问题

临时关闭selinux

setenforce 0

现在访问nginx服务器,就发现一切恢复正常了


当然,你可以考虑彻底关闭selinux,这里我就不说操作方法了。现在我们已经成功使用docker部署了nginx,但是各种操作还是很麻烦,有没有再简单一些的方法?有!加关注,很快更新!

以上内容转载请注明出处,同时也请大家不吝你的关注和下面的赞赏
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

上一篇下一篇

猜你喜欢

热点阅读