• Docker跑项目中常见的中间件


    声明: 本章只作为记录 前端时间跑项目,发现每次都需要启动大量的中间件、在Windows 上启动特别麻烦 就想着写篇文章总结一下,把所有的 中间件全放服务器上启动 ,下次 直接复制黏贴命令就好了。

    例如: RedisMongoDBRabbitMQ Consul nginxTomcat

    下面是 命令

    Docker 启动 MySQL

    搜索

    docker search mysql  
    

    查看所有镜像

     docker images -a 
    

    运行 Mysql

    docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.19
    
    • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
    • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
    • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql
    • -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。

    查看运行容器

    docker ps
    

    进入容器内容

    docker run -it mysql /bin/bash
    

    登录

    mysql -u root -p
    

    修改权限

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    

    这句话是很关键的一句话 ,清除缓存

    flush privileges;
    

    Docker 启动 ElasticSearch

    拉取 版本来源https://www.docker.elastic.co/#

    docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    

    Docker 运行 elasticsearch

    ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。

    docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    

    进入容器配置跨域

    由于要进行配置,因此需要进入容器当中修改相应的配置信息。

    docker exec -it es /bin/bash
    

    进入操作

    # 显示文件
    ls
    结果如下:
    LICENSE.txt  README.textile  config  lib   modules
    NOTICE.txt   bin             data    logs  plugins
    
    # 进入配置文件夹
    cd config
    
    # 显示文件
    ls
    结果如下:
    elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles
    elasticsearch.yml       jvm.options   role_mapping.yml   users
    
    # 修改配置文件
    vi elasticsearch.yml
    
    # 加入跨域配置
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    重新启动
    由于修改了配置,因此需要重启ElasticSearch容器。

    docker restart es
    
    

    Docker 部署 ElasticSearch-Head

    官网 : https://github.com/mobz/elasticsearch-head

    ddocker pull mobz/elasticsearch-head:5
    

    运行容器

    docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
    

    Docker 启动 Redis

    
    docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf 
    
    

    解释

    
    
    > docker run redis # 从redis镜像运行容器
    -p 6379:6379 # 映射本地6379端口到容器6379端口,前为本地端口
    --name redis # 设置容器名称为redis,方便以后使用docker ps进行管理
    -v /docker/redis/redis.conf:/etc/redis/redis.conf # 关联本地/docker/redis/redis.conf文件到容器中/etc/redis/redis.conf,同样,前为本地
    -v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存
    -d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动
    redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置
    
    
    docker run --name redis_zl -p 6379:6379 -d redis --requirepass "密码"
    

    Docker 启动 RabbitMQ

    docker pull rabbitmq:management
    

    运行

    docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management
    
    docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
    

    –hostname:指定容器主机名称
    –name:指定容器名称
    -p:将mq端口号映射到本地

    备选启动同时设置用户和密码

    docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
    

    15672:控制台端口号
    5672:应用访问端口号

    提醒,如果关闭计算机时未停止这个启动的容器,再次启动docker时会出现无法访问15672的情况,此时只需停止并移除这个容器,然后重启一次docker,重新执行启动rabbitmq容器的命令即可。

    Docker 启动 kafka和zookeeper

    docker pull wurstmeister/kafka
    
    docker pull wurstmeister/zookeeper
    

    启动zookeeper

    docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
    
     docker run  -d --name kafka 
        -p 9092:9092 
        -e KAFKA_BROKER_ID=0 
        -e KAFKA_ZOOKEEPER_CONNECT=172.16.65.243:2181 
        -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.65.243:9092 
        -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
    

    Docker 启动 Nginx

    docker pull nginx
    
    docker images | grep nginx
    
    docker run --name nginx -p 80:80 -d nginx
    
    docker exec -it nginx bash
    

    Docker 启动 Mongodb

    sudo docker pull mongo
    
    sudo docker run --name some-mongo -p 27017:27017 -d mongo --auth 
    
    docker exec -it some-mongo bash
    
    
    • 启动mongo
    mongo
    
    
    • 切换
    use admin
    

    添加用户和权限

    db.createUser({ user: "root", pwd: "root", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
    
    

    Tomcat

    docker images #查看所有镜像
    docker image tomcat:7  #查看REPOSITORY为tomcat:7的镜像
    
    
    docker run -d --name tomcat -p 8081:8080 tomcat:7
    
    
  • 相关阅读:
    P1182 数列分段`Section II` 二分
    洛谷 P1025 数的划分
    深浅拷贝
    数据的内置方法
    控制流程-if/while/for
    python的基本运算符
    花式赋值
    python的注释
    Python的垃圾回收机制
    变量与常量
  • 原文地址:https://www.cnblogs.com/spiritmark/p/13009730.html
Copyright © 2020-2023  润新知