• Docker命令 常用中间件运维部署,方便构建自己服务


    Tips:记录了如何安装不同中间件的Docker命令,帮助大家更方便的搭建自己服务,会不定期更新。

    MySQL

    # Mysql 5版本:
    docker run -d -p 3306:3306 --privileged=true \
    -v /itholmes/mysql/log:/var/log/mysql \
    -v /itholmes/mysql/data:/var/lib/mysql \
    -v /itholmes/mysql/conf:/etc/mysql/conf.d \
    -e MYSQL_ROOT_PASSWORD=0818 --name mysql8 mysql:8.0.34
    
    # Mysql 8版本:
    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    
    # 参数说明
    # -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
    # -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
    # -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
    # -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
    # -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    # vi /mydata/mysql/conf/my.cnf
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Redis

    # Redis 容器卷配置
    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf
    
    • 1
    • 2
    • 3
    • 4

    ES

    # 安装es docker
    docker pull elasticsearch:7.4.2
    # 提供可视化 可视化检索数据
    docker pull kibana:7.4.2 
    
    # 查看安装还有多少内存
    free -m
    
    # 挂载的 配置和数据存储 目录
    mkdir -p /mydata/elasticsearch/config
    mkdir -p /mydata/elasticsearch/data
    # 配置elasticsearch的配置文件,
    # 作用:http.host参数用于指定Elasticsearch HTTP服务的绑定地址。当设置为0.0.0.0时,表示Elasticsearch将监听所有可用的网络接口,包括本地回环地址(localhost)和外部网络接口。
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
    
    # 9200端口:接受Rest API请求端口。
    # 9300端口:分布式集群状态下的通信接口
    # -e "discovery.type=single-node":指定单节点模式
    # -e ES_JAVA_OPTS="-Xms64m -Xmx128m":指定初始占用内存 和 最大占用内存,必须指定,不然占死内存。
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.4.2
    
    # docker启动失败,查看日志
    docker logs 应用名
    
    # 安装过程可能遇到 elasticsearch accessdenied问题,那是文件目录权限问题
    chmod -R 777 /mydata/elasticsearch
    
    # 重新启动elasticsearch
    docker start elasticsearch 
    
    # -e ELASTICSEARCH_HOSTS:指定elasticsearch的ip地址和api端口号
    docker run --name kibana \
    -e ELASTICSEARCH_HOSTS=http://192.168.154.132:9200 \
    -p 5601:5601 \
    -d kibana:7.4.2
    
    # 注意:这里启动后是一个小linux容器,所以,此处没办法去应用在hosts文件配置的域名解析,需要用真实的IP或公共域名
    
    # 同样通过logs命令,排除安装失败问题
    docker logs kibana
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    Nginx

    # 1. 先下载一个nginx,方便获取/etc/nginx目录下的配置文件。
    docker run -p 80:80 --name nginx -d nginx:1.10
    # 将容器中的/etc/nginx 复制当前目录。
    docker container cp nginx:/etc/nginx .
    # 将其改为conf文件,用来映射conf文件。
    mv nginx/ conf/
    
    # 2. 创建nginx容器
    docker run -p 80:80 --name nginx \
    -v /mydata/nginx/html:/usr/share/nginx/html \
    -v /mydata/nginx/logs:/var/log/nginx \
    -v /mydata/nginx/conf:/etc/nginx \
    -d nginx:1.10
    
    # 3. 访问对应ip:80 ,测试是否安装成功。
    
    # 4. 进入nginx/html目录下,创建es目录,放置es词典器。
    mkdir es
    cd es
    # 在es目录下面,创建一个fenci.txt文件:可以输入一些测试词语、张三等等。
    vi fenci.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    RabbitMQ

    # 1. 启动 rabbitmq:management 容器
    docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 \
    -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
    # 2. 自动重启
    docker update rabbitmq --restart=always
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Nacos

    # nacos安装
    docker run --env MODE=standalone --name nacos \
    --restart=always \
    -d -p 8848:8848 nacos/nacos-server
    
    • 1
    • 2
    • 3
    • 4

    Tomcat

    # tomcat安装
    docker run -id --name=c_tomcat \
    -p 8080:8080 \
    -v $PWD:/usr/local/tomcat/webapps \
    tomcat 
    
    # -p 8080:8080:将容器的8080端口映射到主机的8080端口
    # -v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    亚马逊 sp-api更新库存 feed 方式,xsd 验证xml
    数据结构:静态链表(编程技巧)
    C++ QT学习笔记
    聊聊vue的nextTick方法
    Java Executors类的9种创建线程池的方法及应用场景分析
    Week 6 Linear Models for Classification (Part B)
    时间序列分析|异常值检测
    CentOS yum update
    【Flink】时间语义和水位线的概念和使用
    Docker数据卷和网络管理 下
  • 原文地址:https://blog.csdn.net/IT_Holmes/article/details/134442373