Docker安装部署nginx

本文详细介绍了如何在Docker环境下安装和部署Nginx。首先从Docker Hub获取Nginx镜像,然后启动Nginx容器,并通过数据卷映射配置虚拟目录、日志目录和配置文件。接着,拷贝容器内的默认配置文件到本地并自定义配置,最后检查容器状态,创建自己的网页并实现页面刷新。

安装Nginx

查找 Docker Hub 上的 nginx 镜像

> docker search nginx
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                             Official build of Nginx.                        11704               [OK]
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   1628                                    [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   726                                     [OK]
bitnami/nginx                     Bitnami nginx Docker Image                      69                                      [OK]
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   69
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   49                                      [OK]
nginx/nginx-ingress               NGINX Ingress Controller for Kubernetes         20
nginxdemos/hello                  NGINX webserver that serves a simple page co…   18                                      [OK]
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        17                                      [OK]
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   17                                      [OK]
crunchgeek/nginx-pagespeed        Nginx with PageSpeed + GEO IP + VTS + more_s…   13
blacklabelops/nginx               Dockerized Nginx Reverse Proxy Server.          12                                      [OK]
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   11

centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   9
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  8
webdevops/nginx                   Nginx container                                 8                                       [OK]
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter                       5
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   5                                       [OK]
1science/nginx                    Nginx Docker images that include Consul Temp…   4                                       [OK]
mailu/nginx                       Mailu nginx frontend                            3                                       [OK]
travix/nginx                      NGinx reverse proxy                             2                                       [OK]
pebbletech/nginx-proxy            nginx-proxy sets up a container running ngin…   2                                       [OK]
centos/nginx-110-centos7          Platform for running nginx 1.10 or building …   0
wodby/nginx                       Generic nginx                                   0                                       [OK]
ansibleplaybookbundle/nginx-apb   An APB to deploy NGINX                          0                                       [OK]

获取镜像

> docker pull nginx

Using default tag: latest
latest: Pulling from library/nginx
fc7181108d40: Pull complete
d2e987ca2267: Pull complete
0b760b431b11: Pull complete
Digest: sha256:48cbeee0cb0a3b5e885e36222f969e0a2f41819a68e07aeb6631ca7cb356fed1
Status: Downloaded newer image for nginx:latest

查看本地镜像列表

> docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f68d6e55e065        2 weeks ago         109MB

使用默认的配置来启动一个 Nginx 容器实例

> docker run --name nginx-test -p 8081:80 -d nginx
e4c0c43840fa23fc01234a7cc8ea4df0566d1e959275ba11606a09997e9fd402

参数说明:

--name: 容器名称 (NAMES)
-p: 端口映射,将主机的端口号8081映射到容器的80端口
-d: 容器在后台运行
e4c0c43840fa23fc01234a7cc8ea4df0566d1e959275ba11606a09997e9fd402: 生成的容器Id,日志文件中可使用

查看容器是否在允许

> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
10cb6d7dbd25        nginx               "nginx -g 'daemon of…"   16 minutes ago      Up 16 minutes       0.0.0.0:8081->80/tcp   nginx-test

在这里插入图片描述

nginx 部署

创建文件夹, 用于存放映射数据

> mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

功能:
www: 目录将映射为 nginx 容器配置的虚拟目录。
logs: 目录将映射为 nginx 容器的日志目录。
conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

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

> docker cp 10cb6d7dbd25:/etc/nginx/nginx.conf ~/nginx/conf

部署命令

> docker run -d -p 20000:80 --name nginx-test-1 -v ~/nginx/www:/usr/share/nginx/html -v  ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

参数说明:
-p: 将主机端口20000映射到容器的80端口上
--name: 容器名字
-v: ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html
-v: ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf
-v: ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx

查看容器状态

> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
10cb6d7dbd25        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds        0.0.0.0:20000->80/tcp   nginx-test-1

创建自己的页面

> cd ~/nginx/www
> vi index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Docker nginx</title>
</head>
<body>
    <h1>Hello Docker</h1>
</body>
</html>

重新刷新页面
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值