美文网首页docker的教程docker. k8slinux tools
docker安装mysql、mongodb、redis和kafk

docker安装mysql、mongodb、redis和kafk

作者: 大师兄爱上芭蕉扇 | 来源:发表于2019-02-15 18:59 被阅读136次

    1、 mysql安装

    sudo docker run --name mysql --restart=always -p 3306:3306 -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=topcom123 -d mysql:5.7.19 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower_case_table_names=1
    

    2、 redis安装

    sudo docker run -p 6369:6379 -v redis-data:/data --name redis --restart=always -d redis:4.0.2 --appendonly yes --requirepass yourpassword
    

    3、 mongodb安装

    3.1 无密码认证

    sudo docker run -p 27007:27017 --name mongo --restart=always -v mongodb-data:/data/db -d mongo:3.4.9

    3.2 添加认证

    方法一:

    可以在上面的容器中增加账号密码,然后克隆上面容器,在命令中加入--auth即可,需要把原来无密码容器删除

    方法二(推荐):

    在创建容器时直接添加认证

    sudo docker run -p 27008:27017 --name mongo-auth --restart=always -v /data/docker/volumes/mongodb-data/_data:/data/db -d mongo:3.4.9 --auth
    ####注意/data/docker/volumes/mongodb-data/_data 要为空目录
    
    docker exec -it mongo-auth mongo admin
    
    

    创建mongo账号密码

    • (1)切换到admin
    use admin
    
    • (2)添加管理用户
    db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
    
    image.png
    • (3)授权登陆admin
    db.auth("root","root");
    
    • (4)为制定数据库db创建账号
    db.createUser({user:"xxxx",pwd:"xxxx",roles:[{role:"dbOwner",db:"yourdb"}]})
    

    方法三:用docker-compose安装(会缺少docke容器ip地址)

    类似下图:


    image.png
    • docker-compose-mongo.yml文件
    version: '2'
    services:
      mongodb-auth:
        image: mongo:3.4.9
        ports:
            - 27008:27017
        volumes:
            - "./data/configdb:/data/configdb"
            - "./data/db:/data/db"
        command: mongod --auth
        tty: true
        
    

    执行命令
    docker-compose -f docker-compose-mongo.yml up -d
    参考文档:https://juejin.im/post/5a560286f265da3e33043ab0

    4、docker安装 kafka&&kafkamanager

    下载镜像

    ### zookeeper image
    docker pull wurstmeister/zookeeper
    ### kafka image
    docker pull wurstmeister/kafka
    ### kafka-manager image
    docker pull sheepkiller/kafka-manager
    

    方法一:docker-compose方式

    docker-compose -f docker-compose-single-broker.yml up -d

    • docker-compose-single-broker.yml
    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2182:2181"
      kafka:
        image: wurstmeister/kafka
        ports:
          - "9072:9092"
        environment:
          KAFKA_ADVERTISED_HOST_NAME: 192.168.1.108
          KAFKA_CREATE_TOPICS: "test:1:1"
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
      kafka-manager:
        image: sheepkiller/kafka-manager
        links:
          - kafka
          - zookeeper
        environment:
          ZK_HOSTS: zookeeper:2181
          APPLICATION_SECRET: "letmein"
        ports:
          - "9001:9000"
        expose:
          - "9001"
    
    

    方法二:

    2.1启动zookeeper
    docker run -d --name zookeeper --publish 2181:2181 \
    --volume /etc/localtime:/etc/localtime \
    --restart=always \
    wurstmeister/zookeeper
    
    2.2启动kafka
    docker run -d --name kafka --publish 9082:9092 \
    --link zookeeper:zookeeper \
    --env KAFKA_BROKER_ID=100 \
    --env HOST_IP=192.168.1.108 \
    --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
    --env KAFKA_ADVERTISED_HOST_NAME=192.168.1.108 \
    --env KAFKA_ADVERTISED_PORT=9082 \
    --restart=always \
    --volume /etc/localtime:/etc/localtime \
    wurstmeister/kafka
    
    2.3启动kafka-manager
    docker run -d --name kafka-manager \
    --link zookeeper:zookeeper \
    --link kafka:kafka -p 9001:9000 \
    --restart=always \
    --env ZK_HOSTS=zookeeper:2181 \
    sheepkiller/kafka-manager
    

    5、 远程phantomjs服务 安装

    docker run -d --restart=always --name phantomjs  -p 8910:8910 wernight/phantomjs phantomjs --webdriver=8910
    

    参考:LI木水 https://www.jianshu.com/p/9b7abead49cc

    6、 fastdfs安装

    参考: LI木水https://www.jianshu.com/p/c66af05c65f3

    docker run -itd \
      --name fastdfs-nginx \
      --network=host \
      -v /etc/localtime:/etc/localtime:ro \
      -v /var/log/fdfs/:/data/fdfs/logs/ \
      -v /data/fdfs/data/:/data/fdfs/data/ \
      -v /var/log/nginx/:/var/log/nginx/ \
      fastdfs-nginx \
      sh -c "/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart && /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart && /usr/sbin/nginx -g 'daemon off;'"
    
    

    常用命令

    fdisk -l 
    #挂载硬盘
    mount /dev/sda1 /home/shaol/test 
    
    ##在/var/lib/docker即为/data/docker的软连接,文件夹后面不要加 “/”,
    ln -s /data/docker /var/lib/docker# 
    
    ls -la /var/lib/docker  
    lrwxrwxrwx 1 root root 12 7月  14 17:20 /var/lib/docker -> /data/docker
    

    相关文章

      网友评论

        本文标题:docker安装mysql、mongodb、redis和kafk

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