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