linux(centos) docker 安装 nginx

1、拉取nginx最新版本镜像

docker pull nginx:latest

查看镜像

docker images 或者 docker images -a  

  

2.启动nginx容器


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

使用docker run命令,启动nginx容器。

  • --name,设置容器名。为方便记忆,设定名称为nginx
  • -d,后台运行。
  • -p,端口映射,把容器端口映射到宿主端口。默认部署在80端口

 

 3、修改nginx监听端口

不希望nginx监听默认的80端口,可以使用-p选项,修改映射端口。

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

4、修改配置和内容

如果想要修改nginx的配置或内容,可以使用-v选项进行数据卷映射。
nginx的配置内容主要包括:

  • 配置,默认位置:/etc/nginx/nginx.conf。
  • 网站,默认位置:/usr/share/nginx。
  • 模块,默认位置:/etc/nginx/modules。

我们将网站设置在宿主机上,并通过数据卷映射的方式到nginx展示。命令如下:

docker run -d -p 8080:80 -v 宿主机绝对路径:/usr/share/nginx/html  --name nginx nginx

利用数据卷映射,可以修改nginx的默认配置和加载网站。同时,容器创建后,就无法修改。一旦关闭容器,容器中的临时数据就会消失。利用数据卷映射,也很好解决了数据持久化的问题。 

// 启动容器
docker run -d -p 80:80 nginx
// 创建容器挂载路径
mkdir -p /data/nginx/{conf,conf.d,html,logs}
// 查看容器ID
docker ps -a
// 复制配置文件到挂载路径docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/
docker cp nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf.d/
docker cp nginx:/usr/share/nginx/html /data/nginx/html
// 关闭容器
docker stop nginx
// 删除容易
docker rm nginx
// 以挂载的方式启动容器
docker run -id --name=nginx \
-p 8080:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-d nginx当docker跑nginx镜像时,设置端口映射,则只有该映射端口起作用,nginx配置的其他端口无效 所以只对80 生效
如果想使用多个端口需要
// 以挂载的方式启动容器
docker run -id --name=nginx \
-p 80:80 \
-p 8085:8085 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-d nginx// 以挂载的方式启动容器   https  证书目录
docker run -id --name=nginx \
-p 80:80 \
-p 8085:8085 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/cert:/etc/nginx -d nginx  \
-d nginx
#配置 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;
}
# 配置default.conf
server {listen       80;listen  [::]:80;server_name  localhost;#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题location / {# docker 使用容器地址才能找到文件 自动映射到挂载目录root   /usr/share/nginx/html;index  index.html index.htm;if (!-e $request_filename) {rewrite ^(.*)$ /index.html?s=$1 last;break;}}
#后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问      location ^~ /shimmer{proxy_pass              http://127.0.0.1:7001/shimmer/;# 如果是用docker请填写真实IP 因为容器内部访问不到本127.0.0.1或locahostproxy_set_header        Host 127.0.0.1;proxy_set_header        X-Real-IP $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

5.静态资源部署:

将静态资源放置~/nginx/html目录中,即可访问.

6.端口绑定:

vim ~/nginx/conf.d/static.conf

一个端口配置一个项目

server {listen 81; # 监听的端⼝server_name localhost; # 域名或iplocation / { # 访问路径配置root /usr/share/nginx/index;# 根⽬录index index.html index.htm; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}}

7.域名绑定:

server {listen 81; # 监听的端⼝server_name www.ahunag.com; # 域名或iplocation / { # 访问路径配置root /usr/share/nginx/index;# 根⽬录index index.html index.htm; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}}

8.反向代理

upstream tomcat-kkb{server 192.168.220.12:8080;}server {listen 80; # 监听的端⼝server_name www.kkb.com; # 域名或iplocation / { # 访问路径配置root index;# 根⽬录proxy_pass http://tomcat-kkb;index index.html index.htm; # 默认⾸⻚}}

9.负载均衡:(默认为轮训)设置权重

nginx upstream tomcat-kkb

{ server 192.168.220.12:8888 weight=2;

server 192.168.220.12:8080;

}

10.解决前端AJax跨域问题

ajax请求:url: “/test”使用代理到->192.168.111.135:8888/testserver{listen 81;location / {root /usr/share/nginx;index  test.html;}
location /test {proxy_pass http://192.168.111.135:8888/test;}
}

11 .https 配置

// 以挂载的方式启动容器   https  证书目录
docker run -id --name=nginx \
-p 80:80 \
-p 8085:8085 \
-p 443:443 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/cert:/etc/nginx/cert  \
-d nginx这种配置需要重济南服务命令  描述
docker pull nginx   下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest )
docker pull nginx:xxx   下载指定版本的Nginx镜像 (xxx指具体版本号)# 创建挂载目录
mkdir -p /docker/nginx/conf
mkdir -p /docker/nginx/log
mkdir -p /docker/nginx/html# 生成容器
# 将容器nginx.conf文件复制到宿主机
# 将容器conf.d文件夹下内容复制到宿主机
# 将容器中的html文件夹复制到宿主机
docker run --name nginx -p 80:80 -d nginxdocker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.confdocker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.ddocker cp nginx:/usr/share/nginx/html /data/docker/nginx/# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx# 删除正在运行的nginx容器
docker rm -f nginx

12、自动启动


docker的--restart选项可以实现自动启动,其可选参数包括:

  • no,不自动重启容器。默认。
  • on-failure 容器退出状态不为0时,重启容器。可以指定最多重启次数。
  • unless-stopped 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时未启动的容器。
  • always 无论何时,都保持容器处于启动状态。配合docker服务可以实现开机自动启动。
sudo systemctl enable docker.service
docker run -d  --restart=always  nginx

如果nginx容器已经启动,可以使用docker update更新。

docker update --restart=always nginx

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监控数据的采集方式及原理

1、读取 /proc 目录 /proc 是一个位于内存中的伪文件系统,该目录下保存的不是真正的文件和目录,而是一些“运行时”信息,Linux 操作系统层面的很多监控数据,比如内存数据、网卡流量、机器负载等,都是从 /proc 中获取的…

设计模式-中介者模式在Java中使用示例-客户信息管理

场景 欲开发客户信息管理窗口界面,界面组件之间存在较为复杂的交互关系:如果删除一个客户, 要在客户列表(List)中删掉对应的项,客户选择组合框(ComboBox)中客户名称也将减少一个; 如果增加一个客户信息,…

接口自动化代码不会写?试试RunnerGo

RunnerGo支持自动化测试功能,RunnerGo的工作流程是:接口管理-场景管理-性能测试-自动化测试,所以自动化测试的运行内容为场景下的用例,我们可以在“场景管理”中预先配置好该场景下的用例,也可以在自动化测试中创建用例…

Tensorflow benchmark 实操指南

环境搭建篇见环境搭建-CentOS7下Nvidia Docker容器基于TensorFlow1.15测试GPU_东方狱兔的博客-CSDN博客 1. 下载Benchmarks源码 从 TensorFlow 的 Github 仓库上下载 TensorFlow Benchmarks,可以通过以下命令来下载 https://github.com/tensorflow/benchmarks 我…

如何使用大模型处理生活繁琐的工作

如果每封电子邮件、每个带有订单、发票、投诉、录用请求或工作申请的 PDF 都可以翻译成机器可读的数据,会怎样?然后可以由 ERP / CRM / LMS / TMS 自动处理吗?无需编程特殊接口。 听起来很神奇?它确实有一些魔力。但最近已成为可…

【计算机视觉中的 GAN 】 - 生成学习简介(1)

一、说明 在阅读本文之前,强烈建议先阅读预备知识,否则缺乏必要的推理基础。本文是相同理论GAN原理的具体化范例,阅读后有两个好处:1 巩固了已经建立的GAN基本概念 2 对具体应用的过程和套路进行常识学习,这种练习题一…

3D Web轻量化渲染开发工具HOOPS Communicator是什么?

HOOPS Communicator是Tech Soft 3D旗下的主流产品之一,具有强大的、专用的高性能图形内核,是一款专注于基于Web端的高级3D工程应用程序。由HOOPS Server和HOOPS Web Viewer两大部分组成,提供了HOOPS Convertrer、Data Authoring的模型转换和编…

对模版以及模版中参数的理解

所谓模板,实际上是建立一个通用函数或类,其类内部的类型和函数的形参类型不具体指定,用一个虚拟的类型来代表。 就比方说你想要实现 一个Add的加法函数,面对不同的类型,你是否要进行多次函数重载呢,其实这多…

HCIP——前期综合实验

前期综合实验 一、实验拓扑二、实验要求三、实验思路四、实验步骤1、配置接口IP地址2、交换机配置划分vlan10以及vlan203、总部分部,骨干网配置OSPF分部总部骨干网 4、配置BGP建立邻居关系总部骨干网分部 5、发布用户网段6、将下一跳改为本地7、允许AS重复8、重发布…

计算机图形学笔记2-Viewing 观测

观测主要解决的问题是如何把物体的三维“模型”变成我们在屏幕所看到的二维“图片”,我们在计算机看到实体模型可以分成这样几步: 相机变换(camera transformation)或眼变换(eye transformation):想象把相机放在任意一个位置来观测物体&#…

Electron + Vue3 + Vite + TS 构建桌面应用

之前是使用React、Electron、TS和webpack来构建桌面应用的。虽然功能齐全,但是打包等等开发的体验不太理想,总感觉太慢了。作为一个开发者,我们总是希望,执行构建命令后,可以快速打包或者启动本地应用,且通过更少的配置,来完成开发体验。 现在的vite已经得到广泛的应用…

Linux操作系统学习,Linux基础命令大全

目录 第一章、Linux简介和安装1.1)Linux简介和分类1.2)安装VMware虚拟机,在虚拟机中安装CentOS 7 第二章、虚拟机中Linux的IP地址配置详解2.1)什么是IP地址,如何查看2.2)虚拟机NAT模式中Linux的IP地址设置有…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

mysql-入门笔记-3

# ----------排序查询-------- # 语法 # select 字段列表 from 表名 order by 字段1 排序方式1 ,字段2 排序方式2 ; DESC 降序 ASC升序 # 1 根据年龄对公司的员工进行升序排序---默认升序-黄色提示代码冗余 select * from userTable order by age ASC ; # 2 根据入职时间,对员…

【二叉树进阶】二叉树的前中后序遍历(非递归迭代实现)

文章目录 1. 二叉树的前序遍历1.1 思路分析1.2 AC代码 2. 二叉树的中序遍历2.1 思路分析2.2 AC代码 3. 二叉树的后序遍历3.1 思路13.2 思路1AC3.3 思路23.4 思路2AC 1. 二叉树的前序遍历 题目链接: link 不用递归,用迭代算法如何实现对二叉树的前序遍历&#xff1f…

牛客网Verilog刷题——VL48

牛客网Verilog刷题——VL48 题目答案 题目 在data_en为高期间,data_in将保持不变,data_en为高至少保持3个B时钟周期。表明,当data_en为高时,可将数据进行同步。本题中data_in端数据变化频率很低,相邻两个数据间的变化&…

大模型开发(十五):从0到1构建一个高度自动化的AI项目开发流程(上)

全文共5600余字,预计阅读时间约13~20分钟 | 满满干货(附全部代码),建议收藏! 本文目标:提出一种利用大语言模型(LLMs)加快项目的开发效率的解决思路,本文作为第一部分,主要集中在如何完整的执行引导Chat模…

网盘共享文件的优势及对团队办公的帮助

伴随着科技的发展,互联网逐步渗透了企业办公方式。各种类型的网盘应运而生,成为当下文件共享的主要方式之一。那么网盘共享文件有什么优势?对团队办公有何帮助呢? 网盘共享文件的优势 1、方便快捷:用户通过移动设备即…

git面试题

文章目录 git经常用哪些指令git出现代码冲突怎么解决你们团队是怎么管理git分支的如何实现Git的免密操作 git经常用哪些指令 产生代码库 新建一个git代码库 git init下载远程项目和它的整个代码历史 git clone 远程仓库地址配置 显示配置 git config --list [--global]编辑配置…

Kubernetes 使用 helm 部署 NFS Provisioner

文章目录 1. 介绍2. 预备条件3. 部署 nfs4. 部署 NFS subdir external provisioner4.1 集群配置 containerd 代理4.2 配置代理堡垒机通过 kubeconfig 部署 部署 MinIO添加仓库修改可配置项 访问nodepotingress 1. 介绍 NFS subdir external provisioner 使用现有且已配置的NFS…