linux(centos) docker 安装 nginx

这篇具有很好参考价值的文章主要介绍了linux(centos) docker 安装 nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​1、拉取nginx最新版本镜像

docker pull nginx:1.24.0

查看镜像

docker images 或者 docker images -a  

linux(centos) docker 安装 nginx,linux管理,运维管理,Java模块,linux,centos,docker

  

2.启动nginx容器


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

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

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

 linux(centos) docker 安装 nginx,linux管理,运维管理,Java模块,linux,centos,docker

 3、修改nginx监听端口

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

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

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:1.24.0

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

linux(centos) docker 安装 nginx,linux管理,运维管理,Java模块,linux,centos,docker

// 启动容器
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 -d -p 8080:80 --name nginx -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx --privileged=true nginx:1.24.0


当docker跑nginx镜像时,设置端口映射,则只有该映射端口起作用,nginx配置的其他端口无效 所以只对80 生效
如果想使用多个端口需要
// 以挂载的方式启动容器
docker run -d -p 8080:80 8085:80 --name nginx -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx --privileged=true nginx:1.24.0


// 以挂载的方式启动容器   https  证书目录
docker run -d -p 8080:80 8085:80 --name nginx -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /data/nginx/cert:/etc/nginx --privileged=true nginx:1.24.0

#配置 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或locahost
        proxy_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; # 域名或ip
    location / { # 访问路径配置
        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; # 域名或ip
    location / { # 访问路径配置
        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; # 域名或ip
    location / { # 访问路径配置
    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/test

server{
    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 nginx

docker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf

docker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.d

docker 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更新。文章来源地址https://www.toymoban.com/news/detail-619343.html

docker update --restart=always nginx

到了这里,关于linux(centos) docker 安装 nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux(Centos)环境安装使用 Nginx

      Nginx 是一款 轻量级 的 Web 服务器/ 反向代理 服务器及 电子邮件 (IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少, 并发 能力强,事实上

    2024年01月24日
    浏览(31)
  • 【Linux|Docker】以CentOS 7为基础镜像制作一个目标镜像(Nginx)

    ==== 需要哪些东西? 1.nginx的安装脚本 install_nginx.sh 源码 https://nginx.org/download/nginx-1.23.3.tar.gz 2.Dockerfile 3.1 准备环境,新建目录 3.2 编写一个编译安装nginx的脚本 为了提高效率,编写一个脚本执行,一次性编译安装好! vim install_nginx.sh 脚本文件内容如下: 3.3 编写Dockerfile 编写

    2024年02月14日
    浏览(37)
  • Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台

    目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语    作者简介:  懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台,希

    2024年03月11日
    浏览(50)
  • 【运维】Linux安装Nginx并部署前端项目的两种方式【内 外网-保姆级教程】_linux部署前端项(1)

    1准备nginx安装包并解压 2执行以下命令,安装nginx依赖包 3编译安装nginx 4验证安装 第二种方式 1下载所需要的安装包 2安装步骤 2.1将下载的完整文件夹通过压缩包的形式,上传到你的路径下解压. 2.2 进入到gcc文件夹下,执行命令: 2.3进入到gcc-c++文件夹下,执行命令: 2.4检查

    2024年04月14日
    浏览(49)
  • Linux CentOS 7.6安装nginx详细保姆级教程

    1、进入home文件并创建nginx文件夹用来存放nginx压缩包 2、下载nginx,我这里下载的是Nginx 1.24.0版本,如果要下载新版本可以去官网进行下载:https://nginx.org/en/download.html wget下载命令: 3、解压文件 4、编译和安装 Nginx安装完成后,默认自动创建 /usr/local/nginx 目录 1、防火墙开启80端

    2024年01月23日
    浏览(44)
  • CentOS系列:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)

    本次的实验环境见下表: 操作系统 服务器IP hostname centos7.6 192.168.1.41 mufengrow41 如何查看相应的参数: 查看操作系统: 查看ip 2.1 添加yum源 nginx不在的默认的yum源中, 可以使用epel或者官网提供的yum源来安装。 以下两种方法,选择任意一种即可,也就是2.1.1和2.1.2两个小节的内

    2024年04月15日
    浏览(48)
  • .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

    在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对.netcore部署到linux有了一个充分的了解,已经可以满足应用要求了,这篇文章我们继续深入带你了解使用Doker+jexus或Nginx来部署.net core应用。 Jexus是一款

    2024年02月01日
    浏览(38)
  • centos7在线安装 jdk1.8+tomcat+mysql8+nginx+docker

    centos7 在线安装jdk1.8 安装tomcat mysql8 nginx docker

    2024年02月11日
    浏览(33)
  • VMware安装无GUI版本的Linux(CentOS7)——安装Nginx示例demo

    目录 镜像地址: VMware的CentOS7镜像安装  1、打开VMware点击新建虚拟机 2、默认内容下一步 3、稍后选择镜像 4、选择Linux的CentOS7版本 5、选择存储位置 6、选择分配处理器数量 7、分配内存 8、使用NAT网络 9、默认LSI Loginc(L) 10、默认SCSI(S) 11、创建新虚拟磁盘 12、分配磁盘空间 1

    2024年02月16日
    浏览(35)
  • 【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)

    大家好,又见面了,我是沐风晓月,本文是专栏【运维系列-架构与服务】专栏中的[linux基本功-系统服务实战篇],主要讲解nginx的编译安装和yum安装的方式 此专栏是沐风晓月对Linux常见的服务和架构进行总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包