Docker部署nginx、配置域名

article/2025/10/25 7:55:40

文章目录

    • 背景
    • 1. 拉取nginx镜像
    • 2. 启动nginx
    • 3. 通过docker修改nginx配置
        • 1) 挂载配置文件
        • 2) 重新加载配置文件
    • 4. 配置我的域名
    • 小结

背景

   docker 容器相关技术已经成为了现在开发和运维人员的热门技术之一,docker就像一个集装箱能够将各种应用放入到集装箱里的盒子里进行统一管理,优点是: 方便、灵活、易迁移。此文介绍的是怎么使用docker部署nginx。

1. 拉取nginx镜像

docker pull nginx:latest

  latest表示最新版的nginx, 拉取到最新版本的Nginx镜像完毕后,我们就可以通过docker images来查看是否下载完毕:
在这里插入图片描述

2. 启动nginx

   镜像下载完毕后,我们可以就使用docker来启动一个nginx容器,启动命令如下:

docker run --name my-nginx -p 8080:80 -d nginx

参数解析:
–name: 给容器取一个别名,启动成功后会在NAMES列显示。
-p: 将服务器的8080端口映射到nginx容器的80端口。
-d: 容器将会以后台的形式来运行。
启动成功后,我们可以通过docker ps命令来查看正在运行的容器:
在这里插入图片描述
   run一个容器后,我们可以通过Start和stop命令来重写启动或停止容器, 后面带上容器的id或者NAMES即可:
在这里插入图片描述
另外我们可以通过命令进入到nginx的终端,查看nginx镜像里的配置文件。

docker exec -it nginx bash

   启动成功后,我们就可以访问nginx了, 如果用的是8080端口,服务器用的是阿里云,那么先要去配置一下安全组:
在这里插入图片描述
将8080端口加入访问的权限即可:
在这里插入图片描述

配置完毕后,再次访问http://116.62.146.90:8080/:在这里插入图片描述

3. 通过docker修改nginx配置

1) 挂载配置文件

   在这里我使用了默认的nginx配置来启动容器, 接下来修改nginx.conf文件,这里需要我们在外部挂载一个配置文件nginx.conf来挂载容器里的nginx的配置文件,因为我们知道在docker里进入到nginx容器时,再去修改 /etc/nginx/nginx.conf文件是极其不方便的,想要在nginx容器外面去操作配置是极其不方便的,因此就有了挂载配置文件的方案。
   首先在docker容器的外部新建一个/data/nginx/{conf,log,conf.d}, 其中conf目录下面为nginx的配置文件,default.conf为nginx的默认配置文件,这两个文件的内容可以先从docker容器里的nginx里拿出来,此路径需要通过指令进入到nginx容器的终端才能查看到, 另外不挂载的时候才能够进入到nginx容器的终端去查看路径。
   注: 外挂时一定需要 nginx.conf和default.conf两个文件才行,并且要保证配置内容没有出错。
在这里插入图片描述
nginx.conf:
在这里插入图片描述
default.conf:
在这里插入图片描述

   以下这两个配置文件的路径是用docker run起来以后,我们可以在没有指定挂载的时候,进入到nginx容器终端里显示出来的路径。

文件名在nginx容器里的路径
nginx.conf/etc/nginx/conf
default.conf/etc/nginx/conf.d/default.conf

准备好如上所需要的配置文件后,我们就可以通过如下命令启动nginx容器:

docker run --name my-nginx -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-d nginx

参数解析:
-v: 表示的是将容器所需要的文件进行挂载, 本例中是将nginx镜像所在容器里的/etc/nginx/nginx.conf 文件挂载到 我们自定义的 /data/nginx/conf/nginx.conf 文件。
-d: 容器以后台的方式进行运行,关闭终端后也不停止。
-p: 80:80 , 将nginx容器的80端口映射到Docker的80端口。

启动成功后,通过docker ps命令查看容器是否在运行:
在这里插入图片描述
如果失败了,那么用docker logs 加上返回的一串字母串查看失败的日志。

2) 重新加载配置文件

   通过上述步骤,我可以将nginx的配置文件挂载到了docker容器外,然后我们只需要在外部修改 /data/nginx/conf/nginx.conf 文件即可, 修改好后需要重新启动一下容器。

docker restart my-nginx

如果在run容器出现容器已经存在,那么可以通过以下指令删除指定的容器, 后面接容器的id或者Name, 前提是要将运行中的容器先暂停:

docker stop my-nginx
docker rm   my-nginx

4. 配置我的域名

   接下来,我想把我刚申请的域名配置到nginx里,这样就能够起到保护ip地址的作用,这样看起来更像是一个完整的网站。首先,刚通过阿里云申请的域名审批通过后,需要在域名控制台下做下域名解析,解析完毕后,方可使用该域名,可以在windows环境下通过ping指令来确定是否解析成功,该域名是否可以直接访问! 解析过程,添加阿里云服务器下的公网ip地址即可!

在这里插入图片描述
  windows环境下看是否能够Ping通:

在这里插入图片描述
发现可以ping通之后,我们就可以开始配置域名了! 修改nginx.conf文件, 我的域名是www.zhuzhu-bingbing.cn

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;client_max_body_size 1024m;client_body_buffer_size 10m;client_header_buffer_size 10m;proxy_buffers 4 128k;proxy_busy_buffers_size 128k;server {listen       80;server_name  www.zhuzhu-bingbing.cn;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}}
}

在这里插入图片描述
访问www.zhuzhu-bingbing.cn, 出现如下画面表示域名生效:
在这里插入图片描述

小结

   以上步骤为docker部署nginx应用的完整流程,配置文件需要外挂这点调试了蛮久, 希望通过此篇文章帮助到刚入坑的小伙伴!


http://chatgpt.dhexx.cn/article/euuyOXv5.shtml

相关文章

nginx配置域名访问/禁止ip访问

一 背景 为什么要禁止ip访问? 为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。 二 解决方法 修改配置文件nginx.conf, 其中2.2的方法可以参考 ubuntu18.04…

配置nginx域名转发

这应该是,我在这个网站的最后一篇博客了。 国庆的时候不知道为什么突然买了个服务器,我打算自己建一个博客网站了,然后前两天域名刚备案成功,晚上有空就配置服务器。 服务器先安装jdk,jre基础环境,然后ngi…

Nginx 服务器配置域名证书

1、首先去申请域名证书,或者购买。都可以,腾讯、阿里、华为、均可,最好域名跟证书在一个服务商处。 2、申请好域名后,进行域名解析配置。证书方会让你,添加提供的解析内容。 3、下载证书,证书提供商会提供…

【Nginx】Nginx主机域名配置

一、配置多个端口访问不同文件 相同域名,不同端口,不同文件 #两个不同文件夹,分别存放不同文件 [rootnginx ~]# mkdir /www/work_01 -p [rootnginx ~]# mkdir /www/work_02 [rootnginx ~]# vim /www/work_01/index.html this is work_01! [r…

阿里云ECS部署Nginx配置域名访问

目录 前言环境 具体步骤服务器域名SSL证书Nginx配置 前言 记录下阿里云服务器建站的过程(回回建,回回忘,尴尬。。。) 环境 ECS(Centos7.6) Nginx 具体步骤 服务器 首先,需要购买一台服务器 …

Nginx配置域名服务小试牛刀

最近实际操作的一个项目哦,大家看下有没有帮助哦!Nginx 配置通过域名访问项目! 项目目的:将打包好的项目jar文件部署起来,并能够通过域名访问 准备条件: 1.服务器端安装需要的1.jdk 选择1.8版本 Linux…

nginx 配置域名映射到本地IP

需求背景 项目需求需要在不同的域名下,判断展示不同的内容,为了模拟线上的正式域名,有以下几种方案: 方案一: 配置host: 1、找到host的文件地址(不会的百度) 2、配置host: 127.0.0.1 www.t…

nginx配置域名,不要端口

版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/panshoujia/article/details/91411484 前期在腾讯云上购买了域名,并在域名管理中&…

服务器部署nginx配置域名反向代理

下载最新版Nginx镜像 docker pull nginx:latest运行nginx镜像 docker run -p 80:80 --name nginx -d nginx从nginx容器中映射核心文件 1、本地创建文件目录 mkdir -p /opt/docker/nginx/conf.d mkdir -p /opt/docker/nginx/html mkdir -p /opt/docker/nginx/logs mkdir -p …

Nginx配置二级域名的方法分享

本文主要介绍了Nginx配置二级域名的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着微点阅读小编来一起学习学习吧 当一个域名需要使用在两个项目上后,我们就需要使用…

nginx配置域名访问

1. 本地开发好的demo程序,target目录下,把META-INF 、WEB-INF、index.jsp 所有文件打成zip包,如下图: 2. Linux服务器下,部署到Tomcat下,清空ROOT目录下所有文件,把1中nginx.zip文件放到ROOT目…

Nginx虚拟域名配置

Linux下Nginx虚拟域名配置 (一)编辑sudo vim /usr/local/nginx/conf/nginx.conf 1.于http内增加include vhost/*.conf 2.保存退出(:wq) (二)在/usr/local/nginx/conf/目录下新建vhost文件夹(/usr/local/nginx/conf/vhost) mkdir /usr/local/nginx/conf/vhost (三)创建域名转发配…

Nginx域名配置详细介绍

前言 1、基本命令 1.1、启动 Linux ./nginx -c conf/nginx.conf windows start nginx1.2、停止 ./nginx -s stop1.3、有序退出 ./nginx -s quit1.4、配置修改后,重新载入 ./nginx -s reload1.5、重启 ./nginx -s reopen 1.6、检测配置文件 ./nginx -t1.7、…

js模拟点击a标签,触发href

js中的$(…).click()事件只能触发绑定的onClick方法,不能跳转到href。 常规情况下如果想下如果想在js里跳转href的链接,会先用attr获取到href属性的值,然后window.location.href跳转,但是现在想利用a标签的download属性实现下载功…

html如何模拟点击,Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox

一把情况下模拟点击一般两个方面,模拟点击超级连接事件 firefox的兼容的函数为 对HTMLAnchorElement 加入onclick事件 try { // create a element so that HTMLAnchorElement is accessible document.createElement(a); HTMLElement.prototype.click function () {…

利用js脚本模拟鼠标点击事件

1. 前言 最近牛课网上推出了一个 【编程之美01期】编程黑科技-如何用脚本抢月饼的活动, 觉得蛮好玩的,正好试验一下 2. 思路 首先先写一个简单的网页, 这里我们直接写一个记录点击次数然后跳转到牛客网的页面 http://www.zhyh2010.cn/now…

js 模拟点击事件

1、element.click() 2、jquery $(element).click()或者trigger()该方法只会触发onclick的方法,如a点击跳转href 需要$(a)[0].click() 3、mouseEvent event new MouseEvent(typeArg, mouseEventInit) typeArg DOMString 格式的事件名称。 mouseEventInit 可选…

windows修改hostname

修改文件:C:\Windows\System32\drivers\etc\hosts,增加红框部分:

修改host文件

1、进入host文件下 地址:C:\Windows\System32\drivers\etc 2、把host文件移动到桌面再修改内容 3、保存后,再拖动到C:\Windows\System32\drivers\etc目录下

修改主机名(/etc/hostname和/etc/hosts区别)

ubuntu永久修改主机名 1、查看主机名 在Ubuntu系统中,快速查看主机名有多种方法: 其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“”符号后; 其二,在终端窗口中输入…