使用docker安装nginx访问web

news2024/11/16 1:55:10

文章目录

  • 一、拉取`nginx`镜像
  • 二、相关准备
    • 2.1、新建目录
    • 2.2、`nginx`配置文件
    • 2.3、前端代码
  • 三、启动容器
  • 四、验证
    • 4.1、服务器上`curl`验证
    • 4.2、浏览器上验证
    • 4.3、问题排查
  • 五、其它命令
    • 5.1、停止容器
    • 5.2、删除容器
    • 5.3、重启容器
    • 5.4、将`nginx`配置文件`copy`到宿主机中
  • 六、最后

一、拉取nginx镜像

docker pull命令用于拉取nginx镜像

[root@iZbp1c2nlg6goff238fkraZ /]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f1f26f570256: Pull complete 
84181e80d10e: Pull complete 
1ff0f94a8007: Pull complete 
d776269cad10: Pull complete 
e9427fcfa864: Pull complete 
d4ceccbfc269: Pull complete 
Digest: sha256:f4e3b6489888647ce1834b601c6c06b9f8c03dee6e097e13ed3e28c01ea3ac8c
Status: Downloaded newer image for nginx:latest

使用docker images命令可以查看当前操作系统中下载了哪些镜像文件。

[root@iZbp1c2nlg6goff238fkraZ /]# docker images
REPOSITORY   TAG            IMAGE ID       CREATED       SIZE
nginx        latest         a6bd71f48f68   3 weeks ago   187MB

二、相关准备

2.1、新建目录

在宿主机中新建文件目录

[root@iZbp1c2nlg6goff238fkraZ /]# mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf

2.2、nginx配置文件

宿主机目录/root/nginx/conf下新建nginx.conf文件,内容如下所示:


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

2.3、前端代码

将前端打包好的文件放入宿主机的/root/nginx/html目录,因为存在映射关系,实际上也是放入了容器的/usr/share/nginx/html目录

三、启动容器

启动一个容器,命令如下:

[root@iZbp1c2nlg6goff238fkraZ /]# docker run -d -p 80:80 --name nginx-prod -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx

-d表示容器在后台运行

--name为容器起一个名字

-p端口映射,格式为宿主机端口:容器端口,上文中含义是将容器中的端口80映射到宿主机的端口80,对外提供访问服务

-v参数表达了宿主机文件与容器中文件的映射关系,格式为-v 宿主机目录:容器文件系统目录

nginx 就是镜像名称

启动后可以查看容器,命令如下:

[root@iZbp1c2nlg6goff238fkraZ /]# docker ps -a
CONTAINER ID   IMAGE COMMAND                CREATED        STATUS        PORTS                             NAMES
73be3a5fb030   nginx "/docker-entrypoint.…" 43 minutes ago Up 43 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-prod

四、验证

4.1、服务器上curl验证

在服务器验证是否可以访问web

[root@iZbp1c2nlg6goff238fkraZ /]# curl 127.0.0.1
<!DOCTYPE html>
<html lang="en" id="htmlRoot">
<head>
    <meta charset="UTF-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="viewport"
          content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
    />
    <title>智能管理系统</title>
    <link rel="icon" href="/favicon.ico"/>
  <script type="module" crossorigin src="/js/index-eeafe988.js"></script>
  <link rel="modulepreload" crossorigin href="/js/@vue-42dc9814.js">
  <link rel="modulepreload" crossorigin href="/js/vue-8fb3817f.js">
  <link rel="modulepreload" crossorigin href="/js/@ctrl-d1fb4aeb.js">
  <link rel="modulepreload" crossorigin href="/js/@ant-design-33c40556.js">
  <link rel="modulepreload" crossorigin href="/js/@babel-0cb2cb27.js">
  <link rel="modulepreload" crossorigin href="/js/resize-observer-polyfill-9cd09a67.js">
  <link rel="modulepreload" crossorigin href="/js/vue-types-6e0325ce.js">
  <link rel="modulepreload" crossorigin href="/js/dom-align-6c68cfea.js">
  <link rel="modulepreload" crossorigin href="/js/lodash-es-af844ede.js">
  <link rel="modulepreload" crossorigin href="/js/dayjs-8413a05d.js">
  <link rel="modulepreload" crossorigin href="/js/async-validator-43606cec.js">
  <link rel="modulepreload" crossorigin href="/js/compute-scroll-into-view-cce79123.js">
  <link rel="modulepreload" crossorigin href="/js/scroll-into-view-if-needed-8ce8502d.js">
  <link rel="modulepreload" crossorigin href="/js/lodash-d75f5fe3.js">
  <link rel="modulepreload" crossorigin href="/js/ant-design-vue-75e17dab.js">
  <link rel="modulepreload" crossorigin href="/js/vue3-json-viewer-6a466741.js">
  <link rel="modulepreload" crossorigin href="/js/source-map-6c921066.js">
  <link rel="modulepreload" crossorigin href="/js/@intlify-1d26f7ce.js">
  <link rel="modulepreload" crossorigin href="/js/vue-i18n-2c887688.js">
  <link rel="modulepreload" crossorigin href="/js/pinia-b8ae3d6a.js">
  <link rel="modulepreload" crossorigin href="/js/axios-8824a488.js">
  <link rel="modulepreload" crossorigin href="/js/js-cookie-d226b4a0.js">
  <link rel="modulepreload" crossorigin href="/js/nprogress-c514a81d.js">
  <link rel="modulepreload" crossorigin href="/js/vue-router-da40847b.js">
  <link rel="stylesheet" href="/css/vue3-json-viewer-88bfb231.css">
  <link rel="stylesheet" href="/css/nprogress-8b89e2e0.css">
  <link rel="stylesheet" href="/css/index-65995322.css">
</head>
<body>
<div id="app"></div>

</body>
</html>

4.2、浏览器上验证

4.3、问题排查

如果访问不了,可能是服务器未开启80端口。比如阿里云ECS需要配置如下:

五、其它命令

nginx-prod为启动容器时--name后的名字

5.1、停止容器

[root@iZbp1c2nlg6goff238fkraZ /]# docker stop nginx-prod
nginx-prod

5.2、删除容器

[root@iZbp1c2nlg6goff238fkraZ /]# docker rm nginx-prod
nginx-prod

5.3、重启容器

有些时候如果改了nginx.conf配置文件,需要重启容器生效,就需要执行命令:docker restart [容器ID],容器ID可以通过docker ps -a查看,第一列CONTAINER ID就是容器ID

[root@iZbp1c2nlg6goff238fkraZ /]# docker restart 797f02efb554

5.4、将nginx配置文件copy到宿主机中

[root@iZbp1c2nlg6goff238fkraZ /]# docker cp nginx-prod:etc/nginx/nginx.conf /root/nginx/conf

六、最后

本人每篇文章都是一字一句码出来,希望对大家有所帮助,多提提意见。顺手来个三连击,点赞👍收藏💖关注✨,一起加油☕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1312512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“追求卓越·数创未来”CITE2024深圳电子展,火爆招商中

展望2023年下半年及2024年&#xff0c;IDC预测&#xff0c;随着全球经济回暖&#xff0c;手机、智能家电、智能汽车等下游消费电子市场需求复苏&#xff0c;芯片库存持续去化&#xff0c;价格趋于平稳&#xff1b;而随着需求侧增长驱动供给侧产能逐步释放&#xff0c;供需错配或…

vue chrome debugger 无效

昨天晚上debbger可以正常运行的&#xff0c;但是早上起来突然间所有的debugger都不会被命中&#xff0c;重装了vscode,也清了浏览器缓存&#xff0c;可是这个bitch还是不行&#xff01;整整折腾了一早上&#xff0c;就是无法解决&#xff0c;没办法只能找找资料 &#xff0c;搜…

基础算法(3):排序(3)插入排序

1.插入排序实现 插入排序的工作原理是&#xff1a;通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已经排序的序列从后向前扫描&#xff0c;找到位置并插入&#xff0c;类似于平时打扑克牌时&#xff0c;将牌从大到小排列&#xff0c;每次摸到一张牌就插入到正确的位…

关于set和map的简单理解

1. 关于搜索 1.1 set和map的引入 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有&#xff1a; 1. 直接遍历&#xff0c;时间复杂度为O(N)&#xff0c;元素如果比较多效率会非常慢 2. 二分查找&…

数智化时代,亚信安慧AntDB邀您一起复盘年度100个值得学习的好案例

全球软件案例研究峰会&#xff08;简称“壹佰案例”&#xff09;是科技界一年一度的案例研究榜单&#xff0c;它萃取了100位领先企业的核心思路及战略方法&#xff0c;旨在发现有案例教学意义的项目或方法论。 湖南亚信安慧科技有限公司AntDB-T产品线负责人洪建辉先生受邀出席此…

Docker知识点整理

Docker和虚拟机技术的区别&#xff1a; 传统的虚拟机&#xff0c;可以虚拟出一条硬件&#xff0c;运行一个完整的操作系统&#xff0c;在这个操作系统上安装和运行所需的软件 容器内的应用可以直接运行在宿主 主机的内核中&#xff0c;容器没有自己的内核&#xff0c;也不用虚…

linux文件打包和压缩

7.2 文件打包和压缩 7.2.1 tar tar&#xff08;英文全拼&#xff1a;tape archive &#xff09;命令用于备份文件。 ​ tar 是用来建立&#xff0c;还原备份文件的工具程序&#xff0c;它可以加入&#xff0c;解开备份文件内的文件。 ​ tar命令是Unix/Linux系统中备给文件的…

ROS2 学习08 导航Nav2:简介、安装、测试效果、错误处理

1、简介 在ROS2中自动导航使用Nav2来实现。 Nav2 使用几个独立的模块化服务&#xff0c;通过 ROS 2接口&#xff08;例如动作服务器或服务&#xff09;与行为树 (BT) 通信。 Nav2 输入包括&#xff1a;TF转换、一个地图源、一个行为树 (BT) XML 文件和相关的传感器数据源; Nav…

UE虚幻引擎中程序无需运行也可调试

首先先新建一个蓝图类&#xff0c;在蓝图类中创建一个Custom event 事件&#xff0c;然后在右侧细节面板中搜索call in editor&#xff0c;编译保存之后&#xff0c;将该蓝图类拖拽到关卡场景中&#xff0c;在细节面板中即可看到该事件的按钮。

基于ssm点餐平台系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本点餐平台系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

记一次在OrangePiZero2(香橙派zero 2)上部署Redroid(云手机)的过程

一句废话 这次换一种写作风格&#xff0c;尝试一下轻松的行文方式。 起因 很久以前看见有群友讨论关于docker部署Redroid&#xff0c;拿来挂机玩游戏一类的。当时听了感觉很有意思&#xff0c;后面粗浅地在zero2上部署了一下&#xff0c;容器虽然是跑起来了&#xff0c;但是…

【每次启动wsl时自动更新ip】

每次启动wsl时自动更新ip 在windows中使用wsl时&#xff0c;每次启动wsl后发现其ip都会改变&#xff0c;这样的话如果想通过vscode的Remote-SSH插件打开代码编辑器&#xff0c;就需要手动更新ssh配置文件&#xff0c;极为不便&#xff0c;所以考虑使用一种优雅的方式&#xff0…

Linux,Windows或macOS系统的电脑怎样才能投屏到手机?

很多人都知道手机投屏到电脑的方法&#xff0c;但想要反过来的时候&#xff0c;却束手无策。 如果你想要将电脑投屏到手机&#xff0c;无论你的电脑是Windows&#xff0c;Linux还是macOS系统&#xff0c;无论你的手机是安卓、iOS还是鸿蒙&#xff0c;都可以用下面这个方法实现电…

YOLOv8改进 | 2023Neck篇 | 利用RepGFPN改进特征融合层(附yaml文件+添加教程)

一、本文介绍 本文给大家带来的改进机制是Damo-YOLO的RepGFPN&#xff08;重参数化泛化特征金字塔网络&#xff09;&#xff0c;利用其优化YOLOv8的Neck部分&#xff0c;可以在不影响计算量的同时大幅度涨点&#xff08;亲测在小目标和大目标检测的数据集上效果均表现良好涨点…

PPT插件-超好用的插件-统一尺寸、裁剪、分布-大珩助手

超级对齐-统一尺寸、裁剪、分布 操作方法 先选中1个或多个形状&#xff0c;然后最后选择目标形状&#xff0c;若希望形状的位置也改变&#xff0c;则需要在对齐幻灯下选中对齐对象。 等比缩放 将选中的1个或多个形状的外形尺寸设置为目标形状大小&#xff0c;图像的纵横比可…

Nginx rewrite 参数

目录 常用的Nginx 正则表达式 rewrite 和 location的区别 location location 大致分三类&#xff1a; location 常用的匹配规则&#xff1a; location 优先级&#xff1a; rewrite rewrite跳转实现 rewrite 执行顺序如下 语法格式 flag标记说明 rewrite实际操作 基…

微信小程序万能建站源码系统 附带完整的搭建教程

随着移动互联网的迅速发展&#xff0c;微信小程序已经成为企业、商家以及个人开发者的重要入口。小编给大家分享一款微信小程序万能建站源码系统&#xff0c;并附带完整的搭建教程&#xff0c;帮助用户轻松搭建自己的小程序平台。 以下是部分代码示例&#xff1a; 系统特色功能…

java综合实验-图书管理系统

二、实验项目内容&#xff08;实验题目&#xff09; 1. 使用Java编程语言进行实验。 2. 采用面向对象的思想进行系统设计。 3. 实现基本的图书管理功能&#xff0c;包括添加图书、删除图书、查询图书信息等。 4. 要求有良好的用户交互界面。 步骤参考&#xff1a; 步骤一…

亚信科技AntDB数据库——深入了解AntDB-M元数据锁的实现(二)

5.5 防止低优先级锁饥饿 AntDB-M按照优先级将锁又分了两类&#xff0c;用于解决低优先级锁饥饿问题。 ●独占型(hog): X, SNRW, SNW; 具有较强的不兼容性&#xff0c;优先级高&#xff0c;容易霸占锁&#xff0c;造成其他低优先级锁一直处于等待状态。 ●暗弱型(piglet): SW; …

Vue3-18-侦听器watch()、watchEffect() 的基本使用

什么是侦听器 个人理解&#xff1a;当有一个响应式状态&#xff08;普通变量 or 一个响应式对象&#xff09;发生改变时&#xff0c;我们希望监听到这个改变&#xff0c;并且能够进行一些逻辑处理。那么侦听器就是来帮助我们实现这个功能的。侦听器 其实就是两个函数&#xff…