容器时相互隔离的,本篇实在linux环境下操作的,主要目的是夺人眼目,对使用Docker部署服务尝鲜,先体会一下Docker的便捷之处 。docker
启动的nginx
是容器内的服务,不影响我原先服务器上的nginx
服务,小伙伴们可大胆尝试
1、下载nginx镜像docker pull nginx2、查看下载的镜像docker ps3、启动nginx镜像docker run -d --name nginx01 -p 3344:80 nginx(镜像名或者镜像id)
文章插图
4、查看启动的nginxdocker ps5、访问启动的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 --permanentorfirewall-cmd --zone=public --add-port=8080/tcp --permanent命令含义:--zone #作用域(public标识公共的)--add-port=80/tcp #添加端口, 格式为:端口/通讯协议--permanent #永久生效,没有此参数重启后失效# 不要忘记reload!firewall-cmd --reload5.2、阿里云服务器需要配置安全组规则配置完之后就可以在浏览器访问
公网ip+3344端口号
查看了5.3、原理端口暴露,linux端口映射到容器端口
0.0.0.0:3344->80/tcp
【Docker | 部署nginx服务】
文章插图
6.进入nginx容器docker exec -it 0a7ebd6bc291 /bin/bashroot@0a7ebd6bc291:/# lsbin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr varroot@0a7ebd6bc291:/# whereis nginxnginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginxroot@0a7ebd6bc291:/# cd /etc/nginx/root@0a7ebd6bc291:/etc/nginx# lsconf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_paramsroot@0a7ebd6bc291:/etc/nginx#问题探索每次改动
nginx
配置,都需要进入容器内部修改,十分麻烦,能否在容器外部提供一个映射路径,达到修改配置文件,容器内部就会自动修改?数据卷技术感谢阅读,本篇完,数据卷技术下文继续分享!
nginx.conf
配置文件,注意Nginx
默认是后台运行的,但Docker
需要其在前台运行,否则直接退出容器 。配置文件中添加daemon off;
关闭后台运行 。可以通过Dockerfile
配置CMD命令实现
经验总结扩展阅读
- mac通过docker一键部署Nexus3
- Docker Desktop 可以直接启用Kubernetes 1.25 了
- 【nginx】使用 nginx 时,使用 sub_filter 注入 js 代码,例如 google analysis 等
- mac通过docker一键部署MySQL8
- docker搭建yapi接口文档系统、Idea中上传接口、在线调用
- Docker | 镜像浅析,以及制作自己的镜像
- CentOS部署MySQL
- CentOS 7.9 安装 nginx-1.22.0
- docker搭建个人云盘可道云kodbox
- gin项目部署到服务器并后台启动