Docker学习笔记2,创建Nginx容器并且实现反向代理和负载均衡配置

首先还是 docker pull nginx

然后根据刚刚pull下来的image创建容器,docker run -p 8800:80 –name mynginx -d nginx

然后使用docker ps查看有木有这个容器(可能会看到you can get programm blabla.core,blabla.full什么的,笔者也没管,不知道做了操作了什么就好了。。。也许是没下载完把),如果你找到了这个mynginx,那么就直接访问localhost:8800(我们把docker的容器8800端口映射成了nginx的80端口),就能看到喜人的nginx欢迎页面了。

但是我们还要配置nginx,使其能够反向代理我们的后端接口,还能均衡一下请求(负载均衡)。

docker配置nginx有好几种方式,我们主要说一下两种:1,挂载宿主机的文件;2,直接进入容器去修改配置文件。

第二种比较好理解,我们来讲一下第一种。

什么叫做挂载宿主机的文件呢?其实很简单。

在我的机器里面建立出一个文件来,它的一个主人就是我们的外部主机,所以我们可以使用cat命令看光她的身体,也可以用vi命令随便编辑。

然后我们在创建nginx容器的时候告诉容器,你可以共享那个文件,这样,容器就会读取到文件的最新内容,并且也可以编辑。

接下来,创建一个Nginx的配置文件

Docker学习笔记2,创建Nginx容器并且实现反向代理和负载均衡配置插图

把这个文件存为xxx.conf文件,(xxx自己起名字,后缀是.conf)就行了。

为了不与刚才创建的容器混淆,删除掉刚刚创建的容器。

然后docker run -p 8800:80 –name mynginx -d nginx -v xxx/xxx.conf:yyy/yyy.conf。

什么意思呢,就是把容器外面的文件映射到里面这个文件上(xxx路径自己找,yyy路径需要改为nginx的配置文件路径。一般是/etc/nginx/conf.d找不到的话别问我,问百度。yyy.conf文件名随便取)。

这样,如果你想修改nginx配置,就可以在外面直接修改,然后docker restart mynginx就行了,容器会自动刷新文件。

第二种呢,就是直接进去bash修改了。但是一般镜像不带vim编辑器,所以需要先安装一个vim。

后来,在进行Nginx配置的时候,笔者使用nginx的80端口映射到容器的8800端口,玛德死活成功不了。后来改成808映射外面容器的8800,又出现了502 BateGateWay,度娘告诉我说docker有自己的虚拟网卡地址,所以配置的127.0.0.1访问不到别的docker容器。吓的我赶紧ifconfig,复制粘贴。没想到,成功啦,啊哈哈哈哈。

PS:第一种必须重启容器才能读取最新的配置文件,但是第二种最好不要重启容器,而是在bash里面重启nginx 。使用nginx -s reload。否则,配置写错了,容器就启动不了了,也就无法进去修改配置文件了。

PPS:如果要修改已经创建容器的端口映射,去修改/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json就好了(笔者亲测不管用)

原文链接:https://blog.csdn.net/qq_19439605/article/details/102860067

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享