docker部署nginx服务的实现步骤

 更新时间:2023年08月25日 14:47:35   作者:lws_163  
本文主要介绍了docker部署nginx服务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

一、nginx的image准备

1、docker search 搜索nginx

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

2、https://hub.docker.com镜像站搜索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需要内容目录。这个方法应该不常用。除了你特别需求,不建议使用。

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

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

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

 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用户

 上图是截至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

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

 到此这篇关于docker部署nginx服务的实现步骤的文章就介绍到这了,更多相关docker部署nginx服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 数据卷,数据卷容器详细介绍

    Docker 数据卷,数据卷容器详细介绍

    这篇文章主要介绍了 Docker 数据卷,数据卷容器详细介绍的相关资料,这里对Docker 数据卷,数据卷容器的感念及相关操作进行了介绍,需要的朋友可以参考下
    2016-11-11
  • Docker安装Redis最新图文教程(非常全)

    Docker安装Redis最新图文教程(非常全)

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库,这篇文章主要给大家介绍了关于Docker安装Redis的相关资料,需要的朋友可以参考下
    2023-11-11
  • 通过Dockerfile构建Docker镜像的方法步骤

    通过Dockerfile构建Docker镜像的方法步骤

    这篇文章主要介绍了通过Dockerfile构建Docker镜像的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Docker连接mongodb实现过程及代码案例

    Docker连接mongodb实现过程及代码案例

    这篇文章主要介绍了Docker连接mongodb实现过程及代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • docker建立私有仓库的过程

    docker建立私有仓库的过程

    这篇文章主要介绍了docker私有仓库的建立,在这需要注意从私有仓库下载先移出原镜像,具体操作过程跟随小编一起看看吧
    2022-01-01
  • dockerfile基于apline将JDK20打包成镜像

    dockerfile基于apline将JDK20打包成镜像

    这篇文章主要为大家介绍了dockerfile基于apline将JDK20打包成镜像步骤及验证,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • Windows10下安装Docker的步骤图文教程

    Windows10下安装Docker的步骤图文教程

    这篇文章主要给大家分享Windows10下安装Docker的过程,本文图文并茂给大家介绍的非常详细,需要的朋友参考下
    2018-03-03
  • Docker镜像存储overlayfs的使用

    Docker镜像存储overlayfs的使用

    这篇文章主要介绍了Docker镜像存储overlayfs的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 对已有的docker容器增加新的端口映射问题(两种方式)

    对已有的docker容器增加新的端口映射问题(两种方式)

    这篇文章主要介绍了对已有的docker容器增加新的端口映射,在运行容器时指定映射端口运行后,如果想要添加新的端口映射,使用两种方式都可以,需要的朋友可以参考下
    2022-01-01
  • docker配置修改阿里云镜像仓库的实现

    docker配置修改阿里云镜像仓库的实现

    这篇文章主要介绍了docker配置修改阿里云镜像仓库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07

最新评论