Docker 安装 Nginx

2023-10-31

Docker 安装 Nginx

查找Docker Hub 上的 nginx 镜像
[root@iz2ze7rz0layh39ol2qog2z ~]# docker search nginx

在这里插入图片描述

拉取官方的镜像
$ docker pull nginx
下载结束后,查看镜像
[root@iz2ze7rz0layh39ol2qog2z ~]# docker images

可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。

运行Nginx
[root@iz2ze7rz0layh39ol2qog2z ~]# docker run -p 8080:80 --name nginxtest nginx

命令是启动docker中的Nginx容器,命名为nginxtest,并将宿主机(服务器)的8080端口和容器的80端口映射。

查看容器启动情况
[root@iz2ze7rz0layh39ol2qog2z ~]# docker ps

1553760140150

显示names为nginxtest的容器,说明容器已经启动成功。

通过浏览器访问

因为将Nginx容器的80端口映射到了服务器8080端口上了,所以访问服务器的8080端口

1553760332700

说明Nginx也启动成功了。

查看容器Nginx配置

在容器中开启一个交互模式的终端,这样就可以查看容器中的文件

[root@iz2ze7rz0layh39ol2qog2z ~]#  docker exec -it 4fdb96249c92 /bin/bash
或者
[root@iz2ze7rz0layh39ol2qog2z ~]#  docker exec -it nginxtest /bin/bash

4fdb96249c92 --容器的CONTAINER ID (通过docker ps查询)

nginxtest – 容器的别名

1553761213697

如上图所示,可以通过命令查看容器的文件。

查看nginx.conf配置文件目录

root@4fdb96249c92:/# nginx -t

)

查看一下Nginx目录结构

1553761546695

我安装的这个版本目录结构和网上的教程不太一样,导致映射配置文件后,怎么配置都无法生效。nginx.conf并没有在etc/nginx/conf目录下。

主机中的nginx.conf挂载到容器的nginx.conf

将服务器的配置文件挂载到容器中,这样我们修改配置文件会方便一些。

退出nginx容器,将容器中的nginx.conf先拷贝到宿主机中:

root@4fdb96249c92:/etc/nginx# exit
exit
[root@iz2ze7rz0layh39ol2qog2z ~]# docker cp nginxtest:/etc/nginx/nginx.conf /data/nginx/conf/backnginx.conf   
将容器中/etc/nginx/nginx.conf文件 复制到宿主机的/data/nginx/conf目录下,并命名为backnginx.conf

1553764189366

停止nginx容器,删除这个测试容器。重新创建一个容器,并进行配置文件映射

[root@iz2ze7rz0layh39ol2qog2z ~]# docker stop nginxtest

[root@iz2ze7rz0layh39ol2qog2z ~]# docker rm nginxtest

1553764951357

docker run  --name nginx -d -p 80:80 
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
-v /data/nginx/logs:/var/log/nginx  
-v /data/nginx/html:/usr/share/nginx/html 
nginx

这样就可以将配置文件、log、静态页面映射到宿主机中。需要修改或者查看直接在宿主机中修改或者查看就可以了。需要注意的是,配置文件虽然映射到宿主机中,但是如需配置路径,还需配置成容器中的路径

其他命令
修改配置文件重启nginx容器
docker exec -it nginx service nginx reload

查询docker中nginx容器的日志的前10行
docker logs --tail="10" nginx

docker容器中安装vim(如果下载不下来,需要配置下国内镜像)
apt-get update
apt-get install vim
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 安装 Nginx 的相关文章

  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 无法从外部访问在端口 4567 上的 Docker 容器中运行的应用程序

    使用重新创建设置所需的所有文件更新帖子 还是同样的问题 无法访问容器中运行的服务 FROM python 3 RUN apt get update RUN apt get install y ruby rubygems RUN gem in
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • PHP-FPM 和 Nginx:502 错误网关

    配置 Ubuntu 服务器 11 10 64 位 亚马逊AWS Ec2 托管在云上 t1 micro实例 在我写任何其他内容之前 我想声明我已经检查了两者nginx 502 错误网关 https stackoverflow com ques
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • docker 容器中的“(pygame parachute)分段错误”

    尝试在 docker 容器中使用 pygame 时出现以下错误 我想从容器中获取显示 Fatal Python error pygame parachute Segmentation Fault 重现 Docker已安装 docker ru
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 每次我执行 docker compose up 时,Docker 都会创建一个新卷

    我有一个 docker compose 文件 可以启动多个服务 我刚刚收到一条错误消息 指出我的磁盘空间不足 因此我输入 docker system df 并看到我有 21 个卷 如果我有 3 个 docker 容器 每个容器都附加一个卷
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 无法访问通过 NodePort 暴露的 Kubernetes 服务

    我正在使用 minikube 在最新的 MacOS 上测试 kubernetes 这是我的相关 YAML 命名空间 yml apiVersion v1 kind Namespace metadata name micro labels na
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • node.js 本身还是 nginx 前端来提供静态文件?

    是否有更快的基准或比较 将 nginx 放在节点前面并让它直接提供静态文件或仅使用节点并使用它提供静态文件 nginx 解决方案似乎对我来说更易于管理 有什么想法吗 我不得不不同意这里的答案 虽然 Node 可以做得很好 但如果配置正确 n
  • 为什么 Docker 不支持多租户?

    我看了这个关于 Docker 的 YouTube 视频 https www youtube com watch v vb7U 9AO7Ww22 00 演讲者 Docker 产品经理 说道 您可能会想 Docker 不支持多租户 您是对的 但
  • 如何使用 Docker for Mac 向 docker awslogs 驱动程序提供凭证?

    我正在尝试使用泊坞窗awslogs 驱动程序 https docs docker com engine admin logging awslogs 并收到以下错误 docker 来自守护程序的错误响应 无法初始化日志记录 驱动程序 NoCr

随机推荐