Docker中部署nginx服务的方案
作者:甜点cc
这篇文章主要介绍了Docker中部署nginx服务的方案的相关资料,需要的朋友可以参考下
容器时相互隔离的,docker
启动的nginx
是容器内的服务,不影响我原先服务器上的nginx
服务,小伙伴们可大胆尝试😃
本篇实在linux环境下操作的,主要目的是夺人眼目,对使用Docker部署服务尝鲜,先体会一下Docker的便捷之处。
1、下载nginx镜像
docker pull nginx
2、查看下载的镜像
docker ps
3、启动nginx镜像
docker run -d --name nginx01 -p 3344:80 nginx(镜像名或者镜像id)
4、查看启动的nginx
docker ps
5、访问启动的nginx
在云服务器内使用 curl 测试访问
curl localhost:3344
5.1、linux开放防火墙端口
firewall-cmd
位于firewalld
包中
systemctl
位于systemd
包中
安装防火墙工具:
yum install firewalld systemd -y
常用命令:
# 查看firewall(防火墙)服务状态 systemctl status firewalld #开启防火墙 systemctl start firewalld #重启防火墙 service firewalld restart #关闭防火墙 service firewalld stop #查看防火墙规则 firewall-cmd --list-all #查看全部信息 firewall-cmd --list-ports #只看端口信息 #添加防火墙开放端口 firewall-cmd --add-port=8001/tcp --permanent or firewall-cmd --zone=public --add-port=8080/tcp --permanent 命令含义: --zone #作用域(public标识公共的) --add-port=80/tcp #添加端口, 格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 # 不要忘记reload! firewall-cmd --reload
5.2、阿里云服务器需要配置安全组规则
配置完之后就可以在浏览器访问公网ip+3344端口号
查看了
5.3、原理
端口 暴露,linux端口映射到容器端口
0.0.0.0:3344->80/tcp
6.进入nginx容器
docker exec -it 0a7ebd6bc291 /bin/bash root@0a7ebd6bc291:/# ls bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@0a7ebd6bc291:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@0a7ebd6bc291:/# cd /etc/nginx/ root@0a7ebd6bc291:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params root@0a7ebd6bc291:/etc/nginx#
问题探索
每次改动nginx
配置,都需要进入容器内部修改,十分麻烦,能否在容器外部提供一个映射路径,达到修改配置文件,容器内部就会自动修改?
数据卷技术
nginx.conf
配置文件,注意Nginx
默认是后台运行的,但Docker
需要其在前台运行,否则直接退出容器。配置文件中添加daemon off;
关闭后台运行。可以通过Dockerfile
配置CMD命令实现
到此这篇关于Docker中部署nginx服务的方案的文章就介绍到这了,更多相关Docker部署nginx内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!