• docker部署redis,mongodb,mysql、nginx常用环境


    docker 安装mysql

    # docker pull mysql:5.7
    # docker run --name mysql5.7 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql  -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

    MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件。

    如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。

    新建的文件可以任意起名,只要保证后缀名是 cnf 即可。

    新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项

    进入mysql

    # docker exec -it d29dd3b86303  /bin/bash
    root@96a49c6e7235:/# mysql -u root -p 

    查看配置文件

    root@96a49c6e7235:/# /etc/mysql/mysql.conf.d/mysqld.cnf
    

     复制配置文件

    # docker cp 容器id:/etc/mysql/mysql.conf.d/mysqld.cnf  /data/mysql/conf/
    

      

    docker安装MongoDB

    docker pull mongo
    docker run --name my_mgdb -p 10311:27017 -v /data/mongodb/my_mgdb/data:/data/db -v /data/mongodb/my_ngdb/backup:/data/backup -v /data/mongodb/mh_mgdb/logs:/var/log/mongodb -d mongo:latest
    

    进入MongoDB

    # docker exec -it cbf07fc08d7f  /bin/bash
    # root@cbf07fc08d7f:/# mongo
    

    在mongo的shell里添加用户名密码等

    # use admin
     # db.createUser(
      {
        user: "myadmin",
        pwd: "123456",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    # db.auth("myadmin","123456");
    # use my_mgdb
    # db.createUser(
      {
        user: "myadmin",
        pwd: "123456",
        roles: [ { role: "userAdmin", db: "my_mgdb" }, { role: "readWrite", db: "my_mgdb" },{ role: "dbOwner", db: "my_mgdb" }]
      }
    )
    # db.auth("myadmin","123456");

     docker安装redis

    docker pull redis:4.0
    docker run -d --privileged=true -p 6379:6379 -v /data/redis/:/etc/redis/ -v  /data/redis:/data --name myredis redis:4.0 redis-server /etc/redis/redis.conf --appendonly yes

    docker 最新是5.0
    先去下载一个 包下来得到配置文件(http://download.redis.io/releases/redis-4.0.3.tar.gz)放到 /data/redis/

    --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
    -v /data/redis/:/etc/redis/ 映射配置文件目录
    -v /data/redis:/data:映射数据目录
    redis-server /etc/redis/redis.conf 指定配置文件启动redis-server进程
    --appendonly yes:开启数据持久化

    进入redis指令

    docker exec -it container-id redis-cli 
    或者
    docker exec -it container-id   /
    redis-cli
    auth myRedis #验证密码

     

    docker 安装nginx

    docker pull nginx

    创建挂载目录

    mkdir -p /data/nginx/{conf,conf.d,html,logs}

    编写nginx.conf配置文件,并放在文件夹中

    # For more information on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        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;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
    # 文件目录
    server {
            listen 80;
            listen 443 ssl;
            server_name xxxx.com;
            #ssl on;
            ssl_certificate C:/nginx-1.14.0/cert/1_xxxx.com_bundle.crt;
            ssl_certificate_key C:/nginx-1.14.0/cert/2_xxxx.com.key;
            ssl_session_cache shared:SSL:1m;
            ssl_session_timeout 5m;
            ssl_ciphers HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers on;
    	root C:/jifan/file_web;
            location / {
        	index  index.html index.php;
        }
            access_log logs/xxxx.com.log;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    

      

    启动容器

    docker run --name mynginx -d -p 80:80  
    -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  
    --privileged=true 
    -v /data/nginx/logs:/var/log/nginx  
    docker.io/nginx 
    

      

    如果非转发,请求文件,目录需要单独挂载

  • 相关阅读:
    vue路由对象($route)参数简介
    原生js写ajax请求(复习)
    js,jq.事件代理(事件委托)复习。
    CSS 设置table下tbody滚动条
    H5 调用手机摄像机、相册功能
    css实现六边形图片(最简单易懂方法实现高逼格图片展示)
    input表单的type属性详解,不同type不同属性之间区别
    js对象,set和get方法 的三种实现形式
    day03 变量
    day01 js三种导入html的方法、js书写规范、变量的基本使用、变量提升
  • 原文地址:https://www.cnblogs.com/lucoo/p/10172515.html
Copyright © 2020-2023  润新知