• Docker学习笔记三.Docker容器之Nginx


    我自己里的Docker容器就是使用Docker镜像启动了一个ke的容器(目前理解,后期再说吧)。


      

    1.安装启动nginx容器

    #1. 用docker search nginx 命令来查看可用版本
    docker search nginx
    #2. 这里我们拉取官方的1.8.1版本的镜像:
         docker pull nginx:1.8.1
    
    #3. 安装完成后,我们可以使用以下命令来运行 nginx 容器:
         docker run --name nginx-test -p 80:80 -d nginx:1.8.1

    #参数说明:
       #  --name nginx-test:容器名称。
       #  -p 80:80: 端口进行映射,将本地 80 端口映射到容器内部的 80 端口。
       #  -d nginx: 设置容器在在后台一直运行。
    
    #4. 最后可以通过浏览器可以直接访问 80 端口的nginx 服务

    以上命令启动了nginx程序!都是初始的配置及文件。

    2.docker nginx关键目录映射到本机

    mkdir -p /data/nginx/www /data/nginx/logs /data/nginx/conf/conf.d /data/nginx/ssl   #首先在本机创建nginx的一些文件存储目录

    www:映射nginx存储网站网页的目录
    logs: 映射nginx日志目录
    conf: 映射nginx配置文件目录
    ssl:   映射ssl文件目录

    将nginx-test容器默认的配置文件copy到本地

    docker cp nginx-test:/etc/nginx/nginx.conf /data/nginx/conf/ #拷贝nginx容器内的nginx.conf配置文件
    docker cp nginx-test:/etc/nginx/conf.d/ /data/nginx/conf/    #拷贝nginx容器内的default.conf,example_ssl.conf配置文件

     使用docker rm nginx-test命令,删除旧的nginx-test容器。(这行划重点!这行划重点!这行划重点!!)

     使用以下命令创建新nginx容器nginx-test并将www,logs,conf目录映射到本地服 

    docker run -d -p 80:80 -p 443:443 --name nginx-test 
    -v /docker/www:/usr/share/nginx/html 
    -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
    -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d 
    -v /docker/nginx/logs:/var/log/nginx 
    -v /docker/nginx/ssl:/etc/nginx/ssl 
    nginx:1.8.1
    
    #注:上面命令是一行,为了方便理解,换行了!!!换行了!!!换行了!!! 你也可以直接复制使用。

     

     启动nginx(访问80端口应该会报403的错误!需要在/data/nginx/www目录下创建index.html,就可以了,因为他映射到本地而本地没有文件。)

    docker start nginx-test

      

    3.docker nginx配置https访问

    配置文件只需要修改本地目录就可以了,因为上一步已经映射到本地了,要修改的本地配置文件路径:/data/nginx/conf/

    首先是nginx.conf文件,这个文件默认的配置就行,可不修改。

    我们来修改配置文件/data/nginx/conf/conf.d/default.conf,可以满足我们绝大部分需求。以下沃得配置文件内容:

    server {
        listen    80;       #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
        listen    443 ssl;
        server_name  aiho.site;             #域名
    
        # 增加ssl
        #ssl on;        #如果强制HTTPs访问,这行要打开
        ssl_certificate       /etc/nginx/ssl/aiho.pem;
        ssl_certificate_key   /etc/nginx/ssl/aiho.key;
    
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
    
        # 指定密码为openssl支持的格式
        ssl_protocols  SSLv2 SSLv3 TLSv1.2;
    
        ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式
        ssl_prefer_server_ciphers  on;   # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
    
         # 定义首页索引目录和名称
        location / {
          root   /usr/share/nginx/html;
          index  index.html index.htm;
        }
    
        #重定向错误页面到 /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
    docker restart nginx-test    #重启nginx容器

    重启nginx容器后,现在就可以通过https来访问nginx的服务器了。

    nginx配置结束了。


    -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d

  • 相关阅读:
    spring学习之模拟spring(spring原理解析)-01.xml文件的解析
    存储过程学习
    对象的深浅拷贝
    JavaScript 面向对象编程思想(二)
    深层剖析JavaScript 一
    深入剖析 css
    Vuex 总结
    h5 微信授权
    LeetCode
    echarts-liquidfill
  • 原文地址:https://www.cnblogs.com/chenghu/p/14355157.html
Copyright © 2020-2023  润新知