Linux中使用Docker构建Nginx容器的详细攻略

 更新时间:2025年12月03日 09:29:19   作者:神秘泣男子  
Nginx是一款广泛使用的高性能 Web 服务器和反向代理服务器,适用于各种场景,如静态文件服务、负载均衡和 API 网关等,在本教程中,我们将详细介绍如何在 Docker 中构建并运行一个 Nginx 容器,帮助开发者快速搭建和管理 Nginx 服务,感兴趣的朋友跟随小编一起看看吧

前言

在现代应用程序开发中,容器化技术已成为一种流行的解决方案。Docker 作为一种强大的容器化平台,使得开发、测试和部署变得更加高效和灵活。Nginx 是一款广泛使用的高性能 Web 服务器和反向代理服务器,适用于各种场景,如静态文件服务、负载均衡和 API 网关等。在本教程中,我们将详细介绍如何在 Docker 中构建并运行一个 Nginx 容器,帮助开发者快速搭建和管理 Nginx 服务。

1.下载基础镜像

下载一个Nginx镜像的镜像基础centos镜像

docker pull centos

2.建立工作目录

mkdir nginx
cd nginx

3.编写Dockerfile文件

可以根据nginx安装到编译的过程来写Dockerfile文件

在nginx目录下执行

vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum install -y wget  proc-devel net-tools gcc gcc-c++ zlib zlib-devel make openssl-devel
RUN wget http://nginx.org/download/nginx-1.24.0.tar.gz
RUN tar zvxf nginx-1.24.0.tar.gz
RUN cd nginx-1.24.0 && ./configure --prefix=/usr/local/nginx && make && make install
EXPOSE 80
EXPOSE 443
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

4.便携执行脚本内容

vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx

5.生成镜像

[root@localhost nginx] docker build -t nginx:mynginx .

1.docker build:这是 Docker 的命令,用于根据指定的 Dockerfile 构建一个新的镜像。

2.-t nginx:mynginx:这是为生成的镜像指定一个名称和标签。

3.nginx 是镜像的名称。4.mynginx 是镜像的标签。使用这种方式可以方便管理不同版本的镜像。

  • .:**表示当前目录是构建上下文,这个目录下必须包含 Dockerfile 文件。Docker 会根据这个 Dockerfile 中的指令来构建镜像。

构建过程

在你提供的输出中,可以看到构建过程的各个阶段:

加载构建定义:Docker 读取 Dockerfile 的内容。

加载基础镜像:从 Docker Hub 获取 centos:7 的元数据。

执行 RUN 指令:

  • 清理默认的 yum 源。
  • 添加阿里云的 yum 源。
  • 安装必要的包(如 wget, gcc, zlib 等)。
  • 下载 Nginx 的源代码包。
  • 解压 Nginx 包。
  • 编译并安装 Nginx。
  • 导出镜像:将构建的内容导出为一个新的镜像,命名为 nginx:mynginx。

6.启动容器并测试

[root@localhost nginx]# docker run -d --name nginx01 -P  nginx:mynginx                                                  
f1489d3891a946dd667c11ac73fd588d5dd63021fbc89062cc152b33d24004d7

docker run:这是 Docker 的基本命令,用于创建并启动一个新容器。

-d:表示以“分离模式”(detached mode)运行容器。容器将在后台运行,而不是在当前终端中输出日志。

–name nginx01:为新创建的容器指定一个名称 nginx01。这样可以方便后续管理和引用该容器,例如停止、启动或删除容器时使用该名称。

-P:自动将容器的端口映射到主机上的随机可用端口。Docker 会将容器内部的端口(例如 Nginx 默认的 80 端口)映射到主机的一个随机端口上,这样可以通过主机的这个随机端口访问容器内的服务。

nginx:mynginx:指定要使用的镜像及其标签。这里的 nginx 是镜像名称,mynginx 是镜像的标签。它表示你要运行的是名为 nginx 的镜像的 mynginx 版本。

7. 查看端口状态信息

查使用以下命令查看正在运行的容器及其端口状态:

docker ps

你将看到类似以下的输出:

[root@localhost nginx]# docker ps
CONTAINER ID   IMAGE           COMMAND                   CREATED         STATUS         PORTS                                                                                NAMES
c99a84f4c5f4   nginx:mynginx   "/usr/local/nginx/sb…"   3 seconds ago   Up 2 seconds   0.0.0.0:32769->80/tcp, :::32769->80/

8进行访问测试

现在,你可以通过主机的随机端口访问 Nginx 服务。例如,如果输出中显示 32769,则可以在浏览器中访问 http://localhost:32769 来测试 Nginx 是否正常运行。

进行访问测试

总结

通过以上步骤,我们成功地在 Docker 中构建并运行了一个 Nginx 容器。这一过程涵盖了从下载基础镜像、创建工作目录,到编写 Dockerfile 和启动容器的完整流程。以下是一些关键点的总结:

  1. 基础镜像的选择:我们选择了 CentOS 作为基础镜像,确保了与大多数 Linux 系统的兼容性,同时也为后续安装 Nginx 提供了一个稳定的环境。
  2. Dockerfile 的编写:通过精心设计的 Dockerfile,我们能够自动化安装 Nginx 及其依赖项,简化了手动配置的复杂性。这种方法不仅提高了构建的效率,还减少了人为错误的可能性。
  3. 容器化的优势:使用 Docker 运行 Nginx 使得服务的部署和管理变得更加灵活。容器可以快速启动和停止,便于进行版本控制和环境隔离。
  4. 可扩展性和维护性:通过这种容器化的方式,后续的扩展和维护变得更加简单。无论是增加新的功能,还是进行性能优化,都可以通过更新 Dockerfile 和重建镜像来实现,而不影响现有的服务。
  5. 快速访问和测试:通过映射容器端口到主机的随机端口,我们能够方便地访问 Nginx 服务,快速进行测试和验证。这一特性使得开发人员可以在本地环境中进行高效的调试。

总之,这种方法不仅能够帮助我们快速部署 Nginx 服务,同时也为后续的扩展和维护提供了便利。希望本教程对你有所帮助,激励你在项目中使用 Docker 和 Nginx,提升开发和运维的效率。

到此这篇关于Linux中使用Docker构建Nginx容器完整教程的文章就介绍到这了,更多相关docker构建nginx容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何使用Docker部署最新版JupyterHub

    如何使用Docker部署最新版JupyterHub

    本文介绍了如何使用Docker部署最新版JupyterHub,包括拉取镜像、启动容器、生成配置文件、安装依赖、创建用户、更改权限、更新配置文件以及访问验证等步骤,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Docker/DockerSwarm部署LNMP并平滑升级PHP过程

    Docker/DockerSwarm部署LNMP并平滑升级PHP过程

    本文详细介绍了如何在CentOS上配置Docker环境、部署LNMP(Linux, Nginx, MySQL, PHP)服务,并通过Docker Swarm实现PHP版本的平滑升级,文章还涵盖了配置内核转发、安装Docker、配置镜像仓库、拉取镜像、部署容器、连接容器、解决常见问题、升级应用以及回滚测试等内容
    2025-10-10
  • 分享Ubuntu19无法安装docker源问题

    分享Ubuntu19无法安装docker源问题

    这篇文章主要介绍了Ubuntu19无法安装docker源问题,本文通过实例代码给大家讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Docker Compose最常用命令(直接复制用)

    Docker Compose最常用命令(直接复制用)

    Docker Compose是Docker官方提供的一个用于管理多个容器的工具,可以使用docker-compose.yml文件定义和运行多容器应用,这篇文章主要介绍了Docker Compose最常用命令的相关资料,需要的朋友可以参考下
    2025-11-11
  • 使用Docker部署MySQL的实现步骤

    使用Docker部署MySQL的实现步骤

    本文主要介绍了Docker部署MySQL的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 基于docker搭建redis-sentinel集群的方法示例

    基于docker搭建redis-sentinel集群的方法示例

    这篇文章主要介绍了基于docker搭建redis-sentinel集群的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Docker实现容器之间通信的多种方式

    Docker实现容器之间通信的多种方式

    在 Docker 中,实现容器之间的通信有多种方式,核心在于网络配置,下面我从 基础原理、常见方式、最佳实践、以及 docker-compose 方式 全面讲解,需要的朋友可以参考下
    2025-06-06
  • docker离线安装并导入镜像过程

    docker离线安装并导入镜像过程

    这篇文章主要介绍了docker离线安装并导入镜像过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 如何通过Dockerfile 创建 kali-novnc

    如何通过Dockerfile 创建 kali-novnc

    这篇文章主要介绍了如何通过Dockerfile 创建 kali-novnc,在Dockerfile所在目录运行相关命令操作即可完成,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • docker安装nginx并部署前端项目的全过程

    docker安装nginx并部署前端项目的全过程

    作为一个前端,代码写完,最后部署到服务器,这是一个必须要了解的过程,这篇文章主要给大家介绍了关于docker安装nginx并部署前端项目的相关资料,需要的朋友可以参考下
    2022-05-05

最新评论