Docker介绍(十五)-- Docker 安装 Nginx

目录

1. 安装 Docker

Ubuntu 示例:

2. 拉取 Nginx 镜像

示例命令:

3. 创建 Docker 容器

示例命令:

4. 验证 Nginx 服务

5. 访问 Nginx 服务器

6. 配置 Nginx

示例 nginx.conf 文件:

示例 default.conf 文件:

7. 使用 Docker Compose

创建 docker-compose.yml 文件:

运行服务:

8. 管理 Nginx 容器

9. 高级配置

示例 default.conf 文件:

总结


 

使用 Docker 安装 Nginx 是一种快速部署和管理 Nginx 服务器的方法。Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,广泛应用于静态文件服务、负载均衡、反向代理等场景。通过 Docker,可以创建一个隔离的环境来运行 Nginx,并且可以轻松地在不同的开发、测试和生产环境中复制相同的配置。

以下是详细的步骤,介绍如何使用 Docker 安装 Nginx:

1. 安装 Docker

确保你的系统上已经安装了 Docker 引擎。如果还没有安装,可以从 Docker 官方网站下载并按照指南安装 Docker 引擎。

Ubuntu 示例:

 

bash

深色版本

1sudo apt update
2sudo apt install docker.io
3sudo systemctl start docker
4sudo systemctl enable docker

2. 拉取 Nginx 镜像

Nginx 官方提供了 Docker 镜像,你可以通过 Docker Hub 拉取这些镜像。

示例命令:

 

bash

深色版本

1docker pull nginx:latest

这将拉取最新的 Nginx 镜像。如果你需要特定版本,可以指定版本标签,例如:

 

bash

深色版本

1docker pull nginx:1.21.6

3. 创建 Docker 容器

接下来,你需要创建一个 Docker 容器来运行 Nginx 服务。在创建容器时,需要指定一些配置来确保 Nginx 正常运行。

示例命令:

 

bash

深色版本

1docker run --name nginx-container \
2           -v /path/to/nginx/html:/usr/share/nginx/html \
3           -v /path/to/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
4           -p 80:80 \
5           -d nginx:latest

这里解释一下各个选项的含义:

  • --name:指定容器的名字。
  • -v:挂载卷来持久化数据。第一个 -v 选项是将主机上的 /path/to/nginx/html 目录挂载到容器的 /usr/share/nginx/html 目录,用于存放静态文件;第二个 -v 选项是将主机上的 Nginx 配置文件挂载到容器的 /etc/nginx/nginx.conf
  • -p:端口映射,将容器内的 80 端口映射到主机的 80 端口。
  • -d:以后台模式运行容器。
  • nginx:latest:使用 Nginx 的最新镜像。

4. 验证 Nginx 服务

你可以通过以下命令来检查 Nginx 容器是否正在运行:

 

bash

深色版本

1docker ps

如果看到 nginx-container 在运行列表中,那么 Nginx 服务应该已经启动了。

5. 访问 Nginx 服务器

你可以通过浏览器访问 http://localhost 或者你的服务器 IP 地址来测试 Nginx 服务器是否正常运行。

6. 配置 Nginx

默认情况下,Nginx 的配置文件位于 /etc/nginx/nginx.conf。你可以通过挂载配置文件来定制 Nginx 的配置。

示例 nginx.conf 文件:

 

nginx

深色版本

1user nginx;
2worker_processes auto;
3error_log /var/log/nginx/error.log notice;
4pid /var/run/nginx.pid;
5
6events {
7    worker_connections 1024;
8}
9
10http {
11    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
12                    '$status $body_bytes_sent "$http_referer" '
13                    '"$http_user_agent" "$http_x_forwarded_for"';
14
15    access_log /var/log/nginx/access.log main;
16
17    sendfile on;
18    tcp_nopush on;
19    tcp_nodelay on;
20    keepalive_timeout 65;
21    types_hash_max_size 2048;
22
23    include /etc/nginx/mime.types;
24    default_type application/octet-stream;
25
26    gzip on;
27
28    include /etc/nginx/conf.d/*.conf;
29}

示例 default.conf 文件:

 

nginx

深色版本

1server {
2    listen 80;
3    server_name localhost;
4
5    root /usr/share/nginx/html;
6    index index.html index.htm;
7
8    location / {
9        try_files $uri $uri/ =404;
10    }
11
12    error_page 500 502 503 504 /50x.html;
13    location = /50x.html {
14        root /usr/share/nginx/html;
15    }
16}

7. 使用 Docker Compose

如果你有多个服务需要一起管理,可以使用 Docker Compose 来简化服务编排。

创建 docker-compose.yml 文件:

 

yaml

深色版本

1version: '3.8'
2
3services:
4  nginx:
5    image: nginx:latest
6    container_name: nginx-container
7    volumes:
8      - /path/to/nginx/html:/usr/share/nginx/html
9      - /path/to/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
10    ports:
11      - "80:80"

运行服务:

 

bash

深色版本

1docker-compose up -d

8. 管理 Nginx 容器

你可以使用以下命令来管理 Nginx 容器:

  • 查看所有容器:

     
    bash

    深色版本

    1docker ps
  • 查看所有容器(包括已停止的):

     
    bash

    深色版本

    1docker ps -a
  • 启动/停止容器:

     
    bash

    深色版本

    1docker start nginx-container
    2docker stop nginx-container
  • 重启容器:

     
    bash

    深色版本

    1docker restart nginx-container
  • 移除容器:

     
    bash

    深色版本

    1docker rm nginx-container
  • 移除所有停止的容器:

     
    bash

    深色版本

    1docker rm $(docker ps -a -q)

9. 高级配置

如果你需要更高级的配置,比如配置 SSL/TLS、负载均衡等,可以进一步修改 Nginx 的配置文件。例如,下面是一个简单的 SSL/TLS 配置示例:

示例 default.conf 文件:

 

nginx

深色版本

1server {
2    listen 443 ssl;
3    server_name example.com;
4
5    ssl_certificate /etc/nginx/ssl/example.com.crt;
6    ssl_certificate_key /etc/nginx/ssl/example.com.key;
7
8    ssl_session_cache shared:SSL:1m;
9    ssl_session_timeout 5m;
10    ssl_ciphers HIGH:!aNULL:!MD5;
11    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
12
13    root /usr/share/nginx/html;
14    index index.html index.htm;
15
16    location / {
17        try_files $uri $uri/ =404;
18    }
19}

总结

通过上述步骤,你可以使用 Docker 快速安装和配置 Nginx 服务器。这种方法的好处在于它可以提供一个一致的环境,无论是在开发还是生产环境中,都可以通过相同的 Docker 配置来部署 Nginx。此外,使用 Docker 还可以轻松地进行备份、恢复和迁移等工作。使用 Docker Compose 可以更方便地管理多个服务之间的关系。

 

要在 Docker 中部署配置 Nginx-RTMP,可以按照以下步骤进行操作: 1. 创建一个 Dockerfile 文件,以便构建自己的 Nginx 镜像。Dockerfile 内容如下: ``` FROM nginx:latest RUN apt-get update && apt-get install -y wget build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev RUN wget https://github.com/arut/nginx-rtmp-module/archive/master.zip && \ unzip master.zip RUN wget http://nginx.org/download/nginx-1.19.1.tar.gz && \ tar -zxvf nginx-1.19.1.tar.gz && \ cd nginx-1.19.1 && \ ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master && \ make && \ make install COPY nginx.conf /usr/local/nginx/conf/ ``` 2. 在 Dockerfile 目录中创建一个名为 nginx.conf 的 Nginx 配置文件,内容如下: ``` worker_processes 1; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } application hls { live on; hls on; hls_path /tmp/hls; } } } http { server { listen 80; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; } } } ``` 3. 构建 Docker 镜像,执行以下命令: ``` docker build -t nginx-rtmp . ``` 4. 运行 Docker 容器,执行以下命令: ``` docker run -d -p 1935:1935 -p 80:80 nginx-rtmp ``` 这将会在 Docker 容器中运行 Nginx,并将 RTMP 端口映射到主机的 1935 端口,将 HTTP 端口映射到主机的 80 端口。 现在,您可以使用 OBS 或其他 RTMP 客户端将视频流发送到 RTMP://<your-ip-address>:1935/live,并使用 VLC 播放器或其他支持 HLS 的浏览器,在 http://<your-ip-address>/hls 中查看视频。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值