首页 > 系统相关 >docker中使用nginx

docker中使用nginx

时间:2023-01-26 22:44:45浏览次数:37  
标签:容器 www 配置文件 nginx https 使用 docker

1.拉取镜像

拉取测试

浏览器测试

参考

# 安装
https://www.cnblogs.com/zhaokejin/p/15605261.html

2.修改配置

我们再开启一个终端,进入到nginx容器中

但我们发现vim、vi、等一系列指令都not find,因为docker给我们下载的nginx并未携带linux的命令的源文件

# 但我们还是有三种办法可以实现修改配置文件的,难度依次提高

配置文件在容器与服务器之间来回cp

下载vim命令

# # 干脆在容器中下载vim命令,下载过程可能出错,因为网不好,多下载几次即可。
apt-get update
apt-get install vim

https://www.cnblogs.com/dotnet261010/p/12594154.html
https://blog.csdn.net/weixin_45503064/article/details/124091211
# 网速比较慢,很可能会超时,但可以多次下载,最终会成功!

数据卷

# 使用数据卷挂载
https://blog.csdn.net/wanglui1990/article/details/102082249
https://www.cnblogs.com/SecondSun/p/12855865.html

3.代理.netcore

# 现在我们已经可以自由修改配置文件了,接下来就是代理.net core项目

测试

我们启动一个mvc项目测试,记住对外端口是8001

先查看mvc项目的网络连接会看到docker网关和得到ip地址

开始修改nginx自带的default.conf文件,由于我的mvc项目启用了https,所以必须写成https,然后是docker网关,最后是对外端口,为什么是这样将单独写博客说明,依旧遵循不跑题原则哈哈哈

最后我们重启nginx,让配置文件立即生效

浏览器访问nginx的端口

参考

感谢以下博主让我从爬出深坑~

# 配置文件为分配的ip地址
https://www.cnblogs.com/dotnet261010/p/12596185.html

# 配置文件为docker网关
https://blog.csdn.net/qq_27843785/article/details/101784607

4.启用https

步骤

启动nginx容器并挂载ssl文件:

进入nginx容器查看文件列表:

将ssl文件拷贝到本服务器中:

可以看到容器内该文件夹也有这些文件:

将默认的default.conf拷贝一份:

将default.conf的监听80端口修改掉,防止冲突:

在拷贝文件中添加证书和代理:

至于为什么是172.17.0.1而不是172.17.0.2是因为现在是通过docker0是注册模式,必须先通过docker的ip做桥梁,普通的容器能互ping是因为属于广播模式:

重启nginx容器,更新修改的配置:

浏览器访问:

参考

感谢以下博主让我从爬出深坑~

# docker搭建https(安全证书)的8种方式
https://www.bilibili.com/video/BV1H34y1X7wp?p=2&vd_source=6222e02dd83374fd4d8850e5384b16f6

# Docker&k8s
https://www.bilibili.com/video/BV1Sv4y1174r/?spm_id_from=333.337.search-card.all.click&vd_source=6222e02dd83374fd4d8850e5384b16f6

5.添加域名

阿里云解析域名

修改配置

重启nginx浏览器查看

6.错误集合

进入容器为什么要/bash

# 为什么进入nginx需要两个,是不是不用-d使用-it交互模型就可以不用呢?

容器run时添加bash坑

https://www.bilibili.com/video/BV1oY4y1L7Rz/?spm_id_from=333.788.top_right_bar_window_custom_collection.content.click
https://www.bilibili.com/video/BV1oY4y1L7Rz/?spm_id_from=333.337.search-card.all.click&vd_source=6222e02dd83374fd4d8850e5384b16f6

重启服务的坑

https://www.bilibili.com/video/BV1SE411x7hw?p=7&vd_source=6222e02dd83374fd4d8850e5384b16f6

反向代理出现502 Bad Gateway

https://blog.csdn.net/zgahxxwht/article/details/105576126

配置文件出错导致无法启动容器

通过docker logs 容器Id, 日志报错提示配置文件有误或者错误信息。因为修改了docker容器中的配置信息,由于配置文件写错,或者配置文件格式错误等原因,导致容器无法再次启动.
这时候通过命令: docker exec -it es /bin/bash 已经无法进入容器了, 问题是容器无法启动, 但容器配置文件又在容器里面, 我们该怎么办呢 ?

方法一:
把docker容器中的配置文件复制到主机中,然后在主机中修改,修改完成后再复制到docker容器中,这里需要使用的docker的命令:
docker cp [容器id]:docker容器中配置文件路径  主机路径

例如:
docker cp mysql:/etc/mysql/my.cnf /home/my.cnf
这样就能把容器中的文件拿到本地来,然后进行修改之后呢,再通过该命名上传到容器中去。

例如:
docker cp 主机文件路径 容器id:docker容器中配置文件路径
docker cp /home/my.cnf mysql:/etc/mysql/my.cnf

之后我们重启容器就可以了。

启动容器时报empty

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty

不用在意,依然可以正常启动访问

7.拓展

nginx日志

# 1.可以通过容器日志查看
docker logs 231a8024f61a

# 2.从nginx配置文件获取日志位置

修改nginx首页

https://www.bilibili.com/video/BV1uE411Y7aN/?spm_id_from=333.337.search-card.all.click&vd_source=6222e02dd83374fd4d8850e5384b16f6

标签:容器,www,配置文件,nginx,https,使用,docker
From: https://www.cnblogs.com/long-live/p/dn.html

相关文章

  • Microsoft Edge浏览器Tampermonkey(油猴)插件的安装与使用
    打开MicrosoftEdge浏览器,点开此链接,安装油猴Tampermonkey下载安装好之后选择在工具栏中显示效果就是这样点击获取新脚本搜索学习通找到这个,并点击安装会......
  • Nginx读取后端服务响应数据流程
    gdbattach[worker进程号]在指定文件的898行打上断点bsrc/event/modules/ngx_epoll_module.c:898客户端发送请求按3次c以后,按n(函数单行执行)和s(函数逐行执行)单步调......
  • 05 数组的使用
    数组的使用代码packagecom.zhan.base04Array;publicclassTest05{//数组的使用publicstaticvoidmain(String[]args){int[]a={1,2,3,4,5}......
  • 罗技K380搭配iPad快捷键使用
    出电池的隔离塑料纸,键盘左侧有总开关。长按F1/F2/F33秒,开启蓝牙,在设备上连接。单键F4/F7单击主屏幕F4/F7任务界面F6显示/隐藏键盘capslock切换中英文Alt长按......
  • 使用Backup Vault进行Disk备份
    Backup是每个云都必不可少的服务,Azure中的backup服务其实远不止一种,很多时候可能并不一定能很轻松的知道每种场景使用哪种备份服务比较合适,我也计划多写几篇来介绍这些备份......
  • CentOS7.9 全自动装docker:v1
    命令(直接复制执行即可):servicefirewalldstopsystemctldisablefirewalld.servicesetenforce0sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/configyu......
  • 使用stomp的java客户端发送数据
    1.前言在上篇文章java实现websocket的五种方式,我详细讲述了使用java实现websocket的五种方式.五种方式都集中在服务器端的实现,客户端我们使用的是一个在线测试工具......
  • JQuery的remove方法的使用
    jquery的remove方法是将元素移除掉,并且返回被移除的元素,还可以使用,下面一个例子使用该功能实现下图的功能:<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><hea......
  • C# 泛型里使用四则运算的办法,委托的妙用
    直接上代码publicstaticclassTestGenricCalc{publicstaticTClac<T>(Tt1,Tt2,Func<T,T,T>func)whereT:struct{return......
  • docker部署netcore项目
    1.部署历史猿友们好,作为初来实习的我,已经遭受社会的“毒打”,所以请容许我在下面环节适当吐槽,3Q!传统部署​ 回顾以往在服务器部署webapi项目(非独立发布),dotnet环境、守......