容器docker部署nginx

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker内部署nginx是容器内的服务

容器时相互隔离的,docker启动的nginx是容器内的服务,不影响我原先服务器上的nginx服务,小伙伴们可大胆尝试

本篇实在linux环境下操作的,主要目的是夺人眼目,对使用Docker部署服务尝鲜,先体会一下Docker的便捷之处。

1、下载nginx镜像

  1. docker pull nginx

2、查看下载的镜像

  1. docker ps

3、启动nginx镜像

  1. docker run -d --name nginx01 -p 3344:80 nginx(镜像名或者镜像id

4、查看启动的nginx

  1. docker ps

5、访问启动的nginx

在云服务器内使用 curl 测试访问

  1. curl localhost:3344

5.1、linux开放防火墙端口

firewall-cmd位于firewalld包中

systemctl位于systemd包中

安装防火墙工具:

  1. yum install firewalld systemd -y

常用命令:

  1. # 查看firewall(防火墙)服务状态
  2. systemctl status firewalld
  3. #开启防火墙
  4. systemctl start firewalld
  5. #重启防火墙
  6. service firewalld  restart
  7. #关闭防火墙
  8. service firewalld  stop
  9. #查看防火墙规则
  10. firewall-cmd --list-all     #查看全部信息
  11. firewall-cmd --list-ports     #只看端口信息
  12. #添加防火墙开放端口
  13. firewall-cmd --add-port=8001/tcp --permanent
  14. or
  15. firewall-cmd --zone=public--add-port=8080/tcp --permanent
  16. 命令含义:
  17.   --zone          #作用域(public标识公共的)
  18.   --add-port=80/tcp   #添加端口, 格式为:端口/通讯协议
  19.   --permanent       #永久生效,没有此参数重启后失效
  20. # 不要忘记reload!
  21. firewall-cmd --reload

5.2、阿里云服务器需要配置安全组规则

配置完之后就可以在浏览器访问公网ip+3344端口号查看了

5.3、原理

端口暴露,linux端口映射到容器端口

0.0.0.0:3344->80/tcp

6.进入nginx容器

  1. docker exec-it 0a7ebd6bc291/bin/bash
  2. root@0a7ebd6bc291:/# ls
  3. 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
  4. root@0a7ebd6bc291:/# whereis nginx
  5. nginx:/usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
  6. root@0a7ebd6bc291:/# cd /etc/nginx/
  7. root@0a7ebd6bc291:/etc/nginx# ls
  8. conf.d fastcgi_params mime.types  modules  nginx.conf  scgi_params  uwsgi_params
  9. root@0a7ebd6bc291:/etc/nginx#

问题探索

每次改动nginx配置,都需要进入容器内部修改,十分麻烦,能否在容器外部提供一个映射路径,达到修改配置文件,容器内部就会自动修改?

数据卷技术

nginx.conf配置文件,注意Nginx默认是后台运行的,但Docker需要其在前台运行,否则直接退出容器。配置文件中添加daemon off;关闭后台运行。可以通过Dockerfile配置CMD命令实现

相关文章
|
4天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第20天】 在微服务架构日益普及的今天,Docker作为其重要的实现技术之一,承载着大量应用的运行。然而,随之而来的是对于容器健康状态、资源使用情况以及性能指标的监控需求急剧增加。本文旨在探讨构建一个高效且稳定的Docker容器监控体系,不仅涵盖了监控工具的选择与配置,还详细阐述了监控数据的分析与处理流程。通过精心设计的监控策略和实时响应机制,我们能够确保系统的稳定性,并及时发现及处理潜在的问题。
|
1天前
|
测试技术 数据安全/隐私保护 Docker
Docker部署开源项目Django-CMS企业内容管理系统
【5月更文挑战第20天】Docker部署开源项目Django-CMS企业内容管理系统
11 1
|
1天前
|
Java 关系型数据库 Docker
docker打包部署spring boot应用(mysql+jar+Nginx)
docker打包部署spring boot应用(mysql+jar+Nginx)
|
1天前
|
Prometheus 监控 Cloud Native
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
|
1天前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
|
1天前
|
Docker 容器
Ubantu docker学习笔记(六)容器数据卷——补充实验
Ubantu docker学习笔记(六)容器数据卷——补充实验
|
1天前
|
安全 Linux Docker
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
|
1天前
|
存储 Linux 调度
Ubantu docker学习笔记(五)容器底层技术
Ubantu docker学习笔记(五)容器底层技术
|
1天前
|
应用服务中间件 Linux 网络安全
Ubantu docker学习笔记(四)docker容器操作
Ubantu docker学习笔记(四)docker容器操作
|
2天前
|
监控 Cloud Native 持续交付
云原生之使用Docker部署Magma导航页
【5月更文挑战第19天】云原生之使用Docker部署Magma导航页
19 0