docker部署服务之docker部署nginx服务

这篇具有很好参考价值的文章主要介绍了docker部署服务之docker部署nginx服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我的一点点docker部署服务习惯,就是喜欢使用官方的镜像,如果没有官方的镜像或者官方的镜像不好用,我会找第三方使用量比较多的镜像。这个习惯是基于安全的考虑,毕竟官方做得稍微安全点,有漏洞也更新最快。

一、nginx的image准备

1、docker search 搜索nginx

docker部署服务之docker部署nginx服务

如如图所示,STARS 第一为17705是官方的mysql镜像。第三方bitnami/mysql的STARS为79。

2、https://hub.docker.com镜像站搜索nginx

 docker部署服务之docker部署nginx服务

 

如图所示,第一个是nginx的官方镜像。

二、nginx官方部署nginx方法

1、docker 启动一个简单的nginx 实例

docker run  \
--name some-nginx \
-v /data/nginx/html:/usr/share/nginx/html:ro \
-d \
nginx

docker run:是启动一个docker 容器的命令。完整书写方法应该是docker container run。

--name some-nginx: 给nginx容器起个名字,为some-nginx。

-v /data/nginx/html:/usr/share/nginx/html:ro:v是volume的首字母,是卷的意思。就是把容器的目录绑到宿主机上的目录,好方便我们查看文件,修改文件。现在这个/data/nginx/html是宿主机上存放web文件的目录,/usr/share/nginx/html是nginx容器里的目录,ro是容器内不能修改,会提示read-only。

-d: d是detach的首字母,可以理解为后台运行这个nginx容器。

nginx:指的nginx的镜像名。tag是给一个版本nginx打个标签,如果不加:tag默认为nginx:latest。nginx最新镜像。

官方还有一个加载静态文件的方法,就是以nginx官方镜像为基础镜像,把静态文件目录复制 到新的镜像里,这样就不用绑定nginx需要内容目录。这个方法应该不常用。除了你特别需求,不建议使用。

docker部署服务之docker部署nginx服务

官方用生成一个加载静态文件的镜像启动nginx服务的方法

2、docker 启动一个暴露外网端口nginx 实例

#官方nginx镜像暴露端口是80

docker部署服务之docker部署nginx服务 

 dockerfile暴露的端口是80

#启动一个绑定外网端口是8080的nginx容器

docker run \
--name some-nginx \
-v /data/nginx/html:/usr/share/nginx/html:ro \
-p 8080:80 \
-d \
nginx

如果宿主机的ip是192.168.1.10,向nginx发起请求地址是http://192.168.1.10:8080

3.docker 启动一个暴露外网端口和nginx配置文件路径的nginx 实例

假设宿主机的nginx配置文件存放目录/data/nginx/nginxconf,如果手头没有nginx配置文件,可以把容器的nginx配置文件复制到/data/nginx/nginxconf,不过先要启动一下没有绑配置的nginx容器,复制配置文件,删除这个nginx容器,最后就可以启动绑定nginx配置文件路径的nginx 实例。整个操作步骤如下:

第一步启动一个不绑定nginx配置文件的容器

docker run \
--name some-nginx \
-v /data/nginx/html:/usr/share/nginx/html:ro \
-p 8080:80 \
-d \
nginx

第二步复制some-nginx里nginx配置文件到宿主机的/data/nginxconf下

docker cp nginx:/etc/nginx  /data/nginx/nginxconf
mv /data/nginx/nginxconf/nginx/*  /data/nginx/nginxconf/
rm -rf /data/nginx/nginxconf/nginx

第三步删除nginx容器

docker rm -f some-nginx

第四步启动绑定nginx配置文件的nginx容器

docker run \
--name some-nginx \
-v /data/nginx/html:/usr/share/nginx/html:ro \
-v /data/nginx/nginxconf:/etc/nginx:ro \
-p 8080:80 \
-d \
nginx

-v /data/nginx/nginxconf:/etc/nginx:ro:/data/nginxconf宿主机上存储nginx的配置文件路径。/etc/nginx是容器里nginx配置文件路径。

三、nginx容器里运行nginx用户

docker部署服务之docker部署nginx服务

 上图是截至nginx官方说明,意思如下:

从1.17.0开始,基于alpine和debian的镜像变体都使用相同的用户和组id来删除工作进程的特权(容器nginx运行用户是nginx ,uid和gid都是101)

id nginx
uid=101(nginx) gid=101(nginx) groups=101(nginx)

可以将映像作为特权较低的任意UID/GID运行。然而,这需要修改nginx配置,以使用特定UID/GID对可写的目录。可以不用nginx用户运行nginx,我觉得没有必要修改运行用户。

四、docker-compose启动nginx服务

#nginx的docker-compose.yml文件,存放在/data/nginx/下

version: '3.7'
services:
  nginx:
    image: nginx
    restart: always
    hostname: nginx
    container_name: nginx
    privileged: true
    ports:
      - 8080:80
    volumes:
      - /data/nginx/nginxconf:/etc/nginx
      - /data/nginx/html:/usr/share/nginx/html
      - /data/nginx/logs/:/var/log/nginx/


/data/nginx/logs/:/var/log/nginx/ 加了一个日志映射到宿主机目录。好查看日志文件。

#docker-compose启动nginx文章来源地址https://www.toymoban.com/news/detail-465302.html

docker-compose -f  /data/nginx/docker-compose.yml up -d

到了这里,关于docker部署服务之docker部署nginx服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言编程实现,计算每天进步一点点一年后的效果

    本来的基数为1,如果好好学习时能力值相比前一天提高1%,当放任时相比前一天下降1%。1年(365天)后的效果相差多少呢? 原基数为1,努力一天进步1%,效果1*(1+0.01),努力两天是在前一天的基础上进步1%,结果是1*(1+0.01)*(1+0.01),一年后天天向上的力量是(1+0.01)的365次方。

    2024年02月11日
    浏览(54)
  • pygame里实现导弹追踪效果,同时对python的指针机制有一点点思考

           最近,儿子一直缠着让我把之前给他编写的游戏重做一下,要加一些功能.但是因为之前写代码的时候刚学会python,当时的想法就是能跑就行,现在回头看来,代码的可维护性几乎为零.所以没办法只能冲头再来,重构了几乎所有代码.在编写的时候遇到了一个有意思的问题,儿子

    2024年01月21日
    浏览(367)
  • TypeError: Cannot read properties of undefined (reading ‘dispatch‘)以及一点点的nprogress的错误

    在开发项目中遇到这个bug,记录一下解决办法 在入口文件main.js看注册的store有无大小写错误 版本太高 vue2安装3版本的vuex,默认安装的4版本给vue3用 nprogress 在查看完代码无错误后去翻了一下nprogress的使用教程 发现进度条关闭的方法居然是done()不是end()!!!

    2024年02月14日
    浏览(61)
  • 6.6---每天一点点--- Java基础之==和equals区别并举例说明(总复习+深入版)---详细+举例(小白也能看懂)

    1.== 为运算符,equal 为String数据类型的比较方法 相同内容的对象地址不一定相同,但相相同地址的对象内容一定相同;== 比较的是值是否相等,equal比较的是是否是同一个对象 2.把对象想象成一个房子,而引用则是门牌号。如果两个引用指向同一个房子,那么它们就是相等的

    2024年02月08日
    浏览(43)
  • 【每天学习一点点 day04】工程化 npm create 脚手架 create-vue, vue-cli 执行原理① - npm cli

    希望我们每个人都能找到属于自己的花期,不急不躁,静等风来。 今天打算用 Docusaurus 开始搭建自己的知识库,之前早已有此想法,遗憾的是没有坚持下来。 这次借助这个机会,也计划将自己【每天学习一点点】系列整理在自己的知识库中,方便大家查找。 在使用脚手架命

    2024年02月22日
    浏览(65)
  • 我的docker随笔41:mqtt服务部署

    因工作需要,需部署 mqtt 服务器进行测试。 dockerhub 上相关镜像,直接拉取可用。经查, eclipse-mosquitto 有官方认证 OFFICIAL ,故使用之,版本为 2.0.15 。 先启动容器,获取配置文件,并设置用户和密码,生成账户文件。 修改配置,挂账户文件。 使用客户端测试。 下载 命令:

    2024年02月03日
    浏览(40)
  • docker部署服务之docker部署nginx服务

    我的一点点docker部署服务习惯,就是喜欢使用官方的镜像,如果没有官方的镜像或者官方的镜像不好用,我会找第三方使用量比较多的镜像。这个习惯是基于安全的考虑,毕竟官方做得稍微安全点,有漏洞也更新最快。 1、docker search 搜索nginx 如如图所示,STARS 第一为17705是官方

    2024年02月07日
    浏览(35)
  • 生活随笔,记录我的日常点点滴滴.

    😘个人主页:@曲终酣兴晚^R的小书屋🥱 😕作者介绍:一个莽莽撞撞的🐻 💖专栏介绍:日常生活往事回忆 😶‍🌫️每日金句:被人暖一下就高热,被人冷一下就成冰,请原谅我一生爱憎分明. 本专栏的每篇不求刻意📖,不求刻意👍,😍就好. C站的小伙伴们汇聚于五湖四

    2024年02月12日
    浏览(37)
  • 【模板】Hexo Docker Nginx 个人博客服务器部署

    上文:基于 Hexo 的 Github 博客搭建 注意:通过验证部署,确定无误。AI生成的部分有🤖图标。 本指南提供了在服务器上设置Git仓库、将本地Hexo页面推送到服务器仓库、在服务器上创建Nginx配置文件以及在服务器上运行Nginx容器的方法。 在服务器上的指定路径下运行git init初始

    2024年02月01日
    浏览(53)
  • 《Docker》阿里云服务器docker部署nginx并配置https踩坑记录(完整)

    前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 来个关注吧,点个赞吧,谢谢 今天在为阿里云服务器续期的时候发现原来阿里云上面也

    2024年02月06日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包