docker容器部署nginx服务

1,726 阅读3分钟
  • 🏆🏆🏆 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
  • 📣📣 欢迎大家多多点赞,关注!!!

前言

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务今天我们来看一下nginx服务是如何安装、启动以及部署的.

在docker拉取nginx镜像

  • 查找 Docker Hub 上的 nginx 镜像

        [root@localhost ~]# docker search nginx
    
  • 拉取官方的Nginx镜像

        [root@localhost ~]# docker pull nginx
    
  • 在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像

      [root@localhost ~]# docker images nginx\
      REPOSITORY TAG IMAGE ID CREATED SIZE\
      docker.io/nginx latest f949e7d76d63 5 weeks ago 126 MB\
    
  • 以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例:

        [root@localhost ~]# docker run --rm --name nginx-test -p 8080:80 -d nginx\
        358354f206fdbc5c20199a307392c11972b1bedab306144e5af56995edbb3e4b
    
  • 其中,该命令的四个命令行参数的含义如下。

        --rm:容器终止运行后,自动删除容器文件。
    
        --name nginx-test:容器的名字叫做nginx-test,名字自己定义.
    
        -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
    
        -d:容器启动后,在后台运行
        
    
  • 拉取官方的Nginx镜像

        [root@localhost ~]# docker container ps\
        CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\
        4a7494723341 nginx "nginx -g 'daemon ..."11 seconds ago Up 7 seconds 0.0.0.0:8080->80/tcp nginx-test
    

启动成功,如下图:

image.png

nginx 服务部署,映射本地目录到nginx容器

  • 创建本地目录,用于存放Nginx的相关文件信息.
    # mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf

其中:

   www: 目录将映射为 nginx 容器配置的虚拟目录。

   logs: 目录将映射为 nginx 容器的日志目录。

   conf: 目录里的配置文件将映射为 nginx 容器的配置文件。
  • 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器ID可以查看 docker ps 命令输入中的第一列:

    [root@localhost home]# docker ps\
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\
    358354f206fd nginx "nginx -g 'daemon ..."29 minutes ago Up 29 minutes 0.0.0.0:8080->80/tcp nginx-test\
    [root@localhost home]#\
    [root@localhost home]# docker cp 358354f206fd:/etc/nginx/nginx.conf /home/nginx/conf/

  • 部署命令

    # docker run --rm -d -p 8081:80 --name nginx-test-web \\
    -v /home/nginx/www:/usr/share/nginx/html \\
    -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\
    -v /home/nginx/logs:/var/log/nginx \\
    nginx

  • 命令说明:
      --rm:容器终止运行后,自动删除容器文件。

      -p 8081:80: 将容器的 80 端口映射到主机的 8081端口.

      --name nginx-test-web:将容器命名为 nginx-test-web 

      -v /home/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

      -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

      -v /home/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

  • 启动以上命令后进入 /home/nginx/www 目录:
    [root@localhost ~]# cd /home/nginx/www/\
    [root@localhost www]# vim index.html\
    \
    <!DOCTYPE html>\
    <html>\
    <head>\
    <meta charset="utf-8">\
    <title>Nginx test !!!</title>\
    </head>\
    <body>\
    <h1>我的第一个标题</h1>\
    <p>我的第一个段落。</p>\
    </body>\
    </html>

访问链接,如下图: image.png

🏆