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 的相关文章

  • Docker 多个相同端口问题

    我目前正在解决方案中开发两个相互关联的 ASP NET Core WebAPI 服务 Service1 和 Service2 两者都有 docker 文件并暴露端口 80 Service1是一个独立的服务 需要从Service2调用 我已经
  • 使用前端 Dockerfile 无法解决

    我对 Docker 还很陌生 正在尝试使用纯 HTML 构建 Docker 映像 但我收到此错误消息 无法使用前端 dockerfile v0 解决 无法读取 dockerfile 打开 var lib docker tmp buildki
  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • 在 docker 容器内创建 android 模拟器时出现“sh: 1: file: not found”

    我正在尝试在 docker 容器内创建一个 android 模拟器 但遇到了一些问题 SDK 更新和 AVD 创建成功 我尝试创建模拟器 出现以下错误 emulator avd test 22 no skin no audio no win
  • 在 Windows 上构建 Docker 映像:入口点脚本“没有这样的文件或目录”

    我在这上面浪费了两天时间 直到我终于解决了我的问题 所以我想我会分享 我将概述我在这里遇到的问题 然后概述答案中的解决方案 My Dockerfile看起来像这样 FROM php 7 2 fpm COPY custom docker ph
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • 如何在 Ubuntu/Linux 发行版中安装 Tesseract-OCR 3.03?

    我和一个朋友有兴趣为 CV 项目训练 tesseract OCR 引擎 我们尝试使用一些包装器 例如 PyTesser 和 pyocr 但结果目前不如我们需要的那么准确 因此 我们希望尝试训练超立方体以更好地实现我们的目的 即识别食品标签上
  • gpg:抱歉,根本没有请求终端 - 无法获取输入

    解密时出现以下错误 eyaml decrypt s ENC and the key goes on here gnupg quiet no secmem warning no permission warning no tty yes de
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • pq:无法调整共享内存段的大小。设备上没有剩余空间

    我在仪表板上有许多面板 数量约为 6 个 用于显示数据点图表 对 PostgreSQL 数据库的 Dockerized 实例进行查询 直到最近 面板都工作正常 有些面板停止工作并报告如下错误 pq 无法将共享内存段 PostgreSQL 2
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐