美文网首页
docker创建nginx容器

docker创建nginx容器

作者: superSK | 来源:发表于2024-07-21 18:57 被阅读0次
1.拉取 nginx镜像
docker pull nginx:1.27
查询nginx镜像包可使用,OFFICIAL-[OK],表示官方镜像
docker search nginx
2.创建nginx配置文件,无特殊要求可跳过
//创建配置文件
touch /xxx/default.conf

//编辑
vi /xxx/default.conf
i

//保存退出
esc
:wq

default.conf 内容

server {
    listen 80;
    # 填写绑定证书的域名
    server_name 域名 www.域名;
    # 把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全
    return 301 https://$host$request_uri;
}


server {
    listen  443 ssl;
    # 证书文件路径, 私钥文件名称 .crt和.pem都可以用
    ssl_certificate /etc/nginx/cert/xxx(域名).pem;
    # 私钥文件路径
    ssl_certificate_key /etc/nginx/cert/(xxx)域名.key;

    # 服务域名
    server_name  域名 www.域名;

    # 日志格式化规则
    #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/host.access.log  main;


    # 小程序端+学生端API接口
    location /wx_mini/ {
        # 服务一:
        proxy_pass http://服务一IP:端口/;
    }

    # 教师端+校管端API接口
    location /pc_manager/ {
        # 服务二
        proxy_pass http://服务二IP:端口/;
    }

    # PC用户管理系统前端页面
    location /manager {
        # 托管前端网站一:
        root   /usr/share/nginx/html;
        index  index.html;
        try_files $uri $uri/ /manager/index.html;
    }

    # 后管端API
    #location /admin_sys/ {
    #    服务三:
    #    proxy_pass http://服务三IP:端口/;
    #}

    # 范围大的放后面
    # 访问域名直接打开的网站,这里配置服务端不分离的项目
    location / {
        # 根目录直接代理服务端前后不分离项目
        proxy_pass http://服务四:端口/;
        #proxy_redirect http://150.158.123.38:8902/ /;
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
        #try_files $uri $uri/ /index.html;
    }


    # 状态码404 -> 指向首页
    # error_page  404  /index.html

    # 状态码为xxx -> 指向xxx
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

}


3. 创建单个容器或使用docker-compose配置nginx

1.创建单个容器

# 多行便于展示()
docker run -p 80:80 -p 443:443 \
    -d --name nginx \
    # nginx的根配置文件,可不挂载使用其默认的
    -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
    # nginx自定义的配置文件,做反向代理和负载均衡时,需修改里面的default.conf文件内容
    -v /data/nginx/conf.d:/etc/nginx/conf.d \
    # 挂载域名证书和私钥
    -v /data/nginx/cert:/etc/nginx/cert
    # 静态资源目录,一般用来挂载前端打包的网站项目或静态资源
    -v /data/www:/usr/share/nginx/html \
    nginx:1.27

2.使用容器编排创建

version: '3'
services:
  nginx: # 服务名称 建议与容器名称一致
    image: nginx:1.27 # 当前数据库的版本
    container_name: nginx # 容器名称
    environment:
#      - TZ=Asia/Shanghai # 设置容器时区 我这里通过下面挂载方式同步的宿主机时区和时间了,这里忽略
    volumes:
      # 静态网站
      - /www/wwwroot/java_psm/nginx/www:/usr/share/nginx/html
      # 日志文件
      - /www/wwwroot/java_psm/nginx/log:/var/log/nginx
      # 证书目录
      - /www/wwwroot/java_psm/nginx/cert:/etc/nginx/cert
      # 主配置
      - /www/wwwroot/java_psm/nginx/nginx.conf:/etc/nginx/nginx.conf
      # 自定义配置
      - /www/wwwroot/java_psm/nginx/conf.d:/etc/nginx/conf.d
    ports:
      - "80:80"
      - "443:443" # 指定宿主机端口与容器端口映射关系,宿主机:容器,宿主机ip根据使用情况进行修改
    restart: always # 容器随docker启动自启

docker-compose 常用指令
docker-compose stop <容器ID/服务名>  # 停止指定服务容器,不指定停止所有
docker-compose restart <容器ID/服务名>  # 重启指定服务容器,不指定全部重启
docker-compose build <容器ID/服务名>  # 重新构建指定容器,不指定全部重新构建
docker-compose -f docker-compose.yml up -d  # -f运行指定的编排文件,不指定则默认在当前目录寻找docker-compose.yml
docker exec -it <容器名/容器ID>  bash(bin/bash)  进入某个容器内部

相关文章

  • Docker运行原理

    创建容器 docker create nginx1.12 docker create --name mysql0 ...

  • Docker下安装Nginx

    1、安装Nginx镜像 安装后,执行 docker images 查看 nginx 镜像。 2、创建Nginx容器...

  • Docker-nginx篇

    docker中添加nginx容器。 下载nginx镜像仓库 查看官方教程 创建nginx容器 复制配置文件到宿主机...

  • Docker 入门

    3.docker 中的nginx 安装: 3.1 拉去nginx 3.2 创建nginx 容器 3.3 停止和删...

  • Centos7上运行Docker容器

    本文以安装Nginx为例介绍Docker容器的创建和运行 1.搜索nginx docker search ngin...

  • Docker常用容器启动命令

    docker启动mysql容器 docker启动nginx容器 docker启动redis容器 docker启动p...

  • Docker NGINX + PHP

    Docker 多容器组合服务 拉取创建好的容器 启动 PHP 容器, 让 NGINX 把请求转发到 PHP-FPM...

  • Bind Mount

    用卷创建一个容器: # docker run -d -it --name=nginx-test --mount t...

  • Docker创建lrnp环境

    基于CentOS7创建Docker镜像,Redis、NGINX、PHP容器。(如果创建失败,重启虚拟机重新运行就可...

  • 在同一个服务器上使用 Docker 部署 Nginx 负载均衡

    为了学习 Docker 相关的知识,本人学习在一台宿主机上使用 Docker 创建多个 Nginx 容器,然后实现...

网友评论

      本文标题:docker创建nginx容器

      本文链接:https://www.haomeiwen.com/subject/mjxehjtx.html