docker部署nginx

(1)获取nginx镜像

1、查看nginx版本

  • 1、选择版本,可以去docker hub,搜索```nginx``
    在这里插入图片描述

​ 点击tags,可以看到历史版本

在这里插入图片描述

  • 2、或通过命令查看Nginx镜像
docker search nginx

输出:

NAME                               DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                         19341     [OK]       
unit                               Official build of NGINX Unit: Universal Web …   19        [OK]       
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                   138       

(2)下载Nginx镜像

使用命令docker pull nginx默认为下载最新版(latest)

docker pull nginx

也可以下载指定版本1.20.1

docker pull nginx:1.20.1

查看下载到本地的镜像文件

docker images

(3)启动nginx容器(简单版)

创建一个名为 “nginx” 的容器,并将容器内的端口 80 映射到主机的端口 8080。

格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

docker run --name nginx -p 8080:80 -d nginx

这个命令的缺陷主要有以下几点:

  1. 缺乏挂载卷:该命令没有使用 -v 参数来挂载容器内的数据卷或文件。这意味着容器内的数据(例如网站文件、日志文件等)将无法持久化保存。当容器被删除或重新创建时,所有的数据都会丢失。
  2. 缺少自定义配置:该命令没有提供自定义的 Nginx 配置文件。默认情况下,Nginx 容器将使用其内部的默认配置。如果你需要自定义 Nginx 的配置,例如修改虚拟主机或代理设置等,你需要编辑容器内的配置文件,或者使用挂载卷将自定义的配置文件传递给容器。
  3. 缺少容器重启策略:该命令没有指定容器的重启策略。默认情况下,容器在退出时不会自动重启。如果你希望容器在发生故障或主机重启后自动重启,你可以使用 --restart 参数来设置适当的重启策略。
  4. 使用最新的 Nginx 镜像:该命令使用的是 nginx 镜像,但没有指定具体的版本号。默认情况下,Docker 将使用最新的可用版本。这意味着在将来重新创建容器时,可能会使用一个不同的版本,导致行为和配置的变化。

(4)启动nginx容器(实际应用版)

1、创建挂载目录

mkdir -p /data/docker/nginx/conf
mkdir -p /data/docker/nginx/log
mkdir -p /data/docker/nginx/html

2、关于容器与主机之间互传文件

(1)将上面创建简单版nginx容器文件,拷贝到主机,命令格式:docker cp 【容器id】:容器目录 本地目录

# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf

# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.d

# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
  • docker cp:用于在容器和主机之间复制文件或目录的命令。
  • nginx:/etc/nginx/nginx.conf:指定了容器内的文件路径,这里是容器名为 “nginx” 的容器中的 /etc/nginx/nginx.conf 文件。
  • /data/docker/nginx/conf/nginx.conf:指定了主机上的目标文件路径,这里是将文件复制到 /data/docker/nginx/conf/nginx.conf

PS:以下这条命令不用执行,只是作为备注如何传输文件

3、将主机文件拷贝到容器目录,格式:docker cp 本地目录 【容器id】:容器目录

#把外面的内容复制到容器里面
docker cp  /data/conf/nginx.conf  【容器id】:/etc/nginx/nginx.conf
  • /data/conf/nginx.conf:指定了主机上的源文件路径,这里是将主机上的 /data/conf/nginx.conf 文件复制到容器内。
  • 【容器id】:/etc/nginx/nginx.conf:指定了容器内的目标文件路径,这里是容器的 ID(或名称)为 【容器id】 的容器中的 /etc/nginx/nginx.conf 文件。

本命令跳过,执行以下命令。

4、启动容器命令:

docker run -d -p 8090:80 \
-v /data/docker/nginx/html:/usr/share/nginx/html:ro \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/log:/var/log/nginx \
--restart=always \
--name mynginx-02 \
nginx

启动容器命令的详细解释:

  • docker run:运行一个新的容器。
  • -d:以后台模式运行容器。
  • -p 8090:80:将容器内的端口 80 映射到主机的端口 8090。这样可以通过主机的端口访问 Nginx 服务。
  • -v /data/docker/nginx/html:/usr/share/nginx/html:ro:使用卷挂载功能,将本地目录 /data/docker/nginx/html 挂载到容器内的 /usr/share/nginx/html 目录,并设置为只读(ro)。这样可以将自定义的 HTML 文件挂载到 Nginx 容器,用于网站内容的展示。
  • -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:使用卷挂载功能,将本地文件 /data/docker/nginx/conf/nginx.conf 挂载到容器内的 /etc/nginx/nginx.conf 文件。这样可以使用自定义的 Nginx 配置文件。
  • -v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d:使用卷挂载功能,将本地目录 /data/docker/nginx/conf/conf.d 挂载到容器内的 /etc/nginx/conf.d 目录。这样可以挂载自定义的 Nginx 配置文件片段。
  • -v /data/docker/nginx/log:/var/log/nginx:使用卷挂载功能,将本地目录 /data/docker/nginx/log 挂载到容器内的 /var/log/nginx 目录。这样可以将 Nginx 的日志文件存储到本地目录。
  • --restart=always:设置容器在退出时自动重启。
  • --name mynginx-02:为容器指定一个名称,这里是 “mynginx-02”。
  • nginx:基于 Nginx 镜像运行容器。

5、访问测试

写入一个html文件,访问测试

[root@localhost ~]# vim /data/docker/nginx/html/index.html

写入:

Hello world

输入IP+端口访问:http://你的IP:端口/

在这里插入图片描述

  • 28
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!要使用Docker部署Nginx,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker。您可以在终端中运行 `docker -v` 命令来检查是否已经安装。 2. 在您的项目目录中创建一个名为 `Dockerfile` 的文件,并在其中添加以下内容: ``` # 使用官方 Nginx 镜像作为基础镜像 FROM nginx # 将本地的 nginx.conf 文件复制到容器中的 /etc/nginx/ 目录 COPY nginx.conf /etc/nginx/nginx.conf # 暴露容器的80端口 EXPOSE 80 # 启动 Nginx 服务 CMD ["nginx", "-g", "daemon off;"] ``` 3. 在项目目录中创建一个名为 `nginx.conf` 的文件,并根据您的需求配置Nginx。例如,以下是一个简单的示例配置: ``` worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; } } } ``` 4. 在终端中导航到项目目录,并构建Docker镜像。运行以下命令: ``` docker build -t my-nginx . ``` 这将使用 `Dockerfile` 中的配置构建一个名为 `my-nginx` 的镜像。确保在命令的末尾有一个点,它表示Dockerfile所在的当前目录。 5. 构建完成后,您可以运行以下命令来启动Nginx容器并将其与主机的80端口绑定: ``` docker run -d -p 80:80 my-nginx ``` 这将在后台运行Nginx容器,并将主机的80端口映射到容器的80端口。 现在,您应该可以通过访问 `http://localhost` 来查看部署Nginx应用程序。 希望对您有所帮助!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超凡脫俗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值