zoukankan      html  css  js  c++  java
  • docker之服务搭建

      使用docker搭建相关服务:

        1. MySQL服务

       1) 拉取镜像

    docker pull mysql:5.7   # 拉取 mysql 5.7
    docker pull mysql       # 拉取最新版mysql镜像
    
    # 不指定版本,默认拉取最新的

      2)启动服务

    sudo  docker run -p 3306:3306 --name mysql 
    -v /usr/local/docker/mysql/conf:/etc/mysql 
    -v /usr/local/docker/mysql/logs:/var/log/mysql 
    -v /usr/local/docker/mysql/data:/var/lib/mysql 
    -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql:5.7
    
    
    –name:容器名,此处命名为mysql
    -e:配置信息,此处配置mysql的root用户的登陆密码
    -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
    -v: 挂载数据卷, 宿主目录: 容器目录
    -d:源镜像名,此处为 mysql:5.7

      3) 如果你的容器运行正常,但是无法访问到MySQL,一般有以下几个可能的原因:

        a) 防火墙

    # 开放端口:
    $ systemctl status firewalld
    $ firewall-cmd  --zone=public --add-port=3306/tcp -permanent
    $ firewall-cmd  --reload
    # 关闭防火墙:
    $ sudo systemctl stop firewalld

        b)需要进入docker本地客户端设置远程访问账号

    $ sudo docker exec -it mysql bash
    $ mysql -uroot -p123456
    mysql> grant all privileges on *.* to root@'%' identified by "password";
    # mysql使用mysql数据库中的user表来管理权限,修改user表就可以修改权限(只有root账号可以修改)
    
    mysql> use mysql;
    Database changed
    
    mysql> select host,user,password from user;
    +--------------+------+-------------------------------------------+
    | host                    | user      | password                                                                 |
    +--------------+------+-------------------------------------------+
    | localhost              | root     | *A731AEBFB621E354CD41BAF207D884A609E81F5E      |
    | 192.168.1.1            | root     | *A731AEBFB621E354CD41BAF207D884A609E81F5E      |
    +--------------+------+-------------------------------------------+
    2 rows in set (0.00 sec)
    
    mysql> grant all privileges  on *.* to root@'%' identified by "password";
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select host,user,password from user;
    +--------------+------+-------------------------------------------+
    | host                    | user      | password                                                                 |
    +--------------+------+-------------------------------------------+
    | localhost              | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
    | 192.168.1.1            | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
    | %                       | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
    +--------------+------+-------------------------------------------+
    3 rows in set (0.00 sec)
    

      2.mongo服务

    1)拉取镜像

    docket pull mongo:latest

    2)运行容器

    docker run -it --name mongo-server -v /data/docker_data/mongoDB:/data/db -p 27018:27017 -d mongo:latest  --auth
    
    
    --name 容器名称
    -v 数据挂载
    -p 端口映射
    -d 守护进程
    --auth 需要验证

    3)创建用户

    # 进入容器
    docker exec -it mongo-server /bin/bash
    
    # 进入mongo
    mongo
    
    
    # 创建管理员
    use  admin
    
    
    db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});
    
    # 退出当前用户
    exit
    
    
    # 使用新创建的管理员账号进行登录
    mongo --port 27017 -u admin -p admin --authenticationDatabase admin
    
    # 创建普通用户
    > use test
    switched to db test
    > db.createUser({user:"tester",pwd:"tester",roles:[{role:"readWrite",db:"test"}]});

    # 退出
    exit

    4)在容器外进行连接

    # 如果Linux不存在mongo客户端,可以使用yum 进行安装
    yum install -y mongodb // client
    yum install -y mongodb-server // server
    
    
    mongo --port 27018 -u tester -p tester --authenticationDatabase test 

    mongo中的角色与权限说明:

    数据库用户角色 read、readWrite
    数据库管理角色 dbAdmin、dbOwner、userAdmin
    集群管理角色 clusterAdmin、clusterManager、clusterMonitor、 hostManager
    备份恢复角色 backup、restore
    所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    超级用户角色 root
    内部角色 __system
    角色说明
    
    Read 允许用户读取指定数据库
    readWrite 允许用户读写指定数据库
    dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root 只在admin数据库中可用。超级账号,超级权限
    
  • 相关阅读:
    linux-who
    Linux开机禁用开启防火墙
    linux环境vnc安装
    NFS配置及开机自动挂载
    yum list失败
    镜像文件挂载及本地yum搭建
    weblogic在64位windows的设置
    linux操作系统语言更改
    Linux磁盘空间扩容(LVM)
    Nginx 拒接服务漏洞(CVE-2016-0747)整改
  • 原文地址:https://www.cnblogs.com/xingxia/p/docker_servers.html
Copyright © 2011-2022 走看看