1. 安装Docker 一键安装(推荐) 1 2 3 4 5 # 使用阿里云 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 或者使用daocloud 选一个即可 curl -sSL https://get.daocloud.io/docker | sh
手动安装 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 47 48 49 50 1. 确定你是CentOS7及以上版本 cat /etc/redhat-release 2. yum安装gcc相关 CentOS7能上外网 yum -y install gcc yum -y install gcc-c++ 3. 卸载旧版本 yum -y remove docker docker-common docker-selinux docker-engine 之前版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine 4.安装需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 5.设置stable镜像仓库 (XXX大坑)yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 可能报错: 5.1 [Errno 14] curl#35 - TCP connection reset by peer 5.2 [Errno 12] curl#35 - Timeout (推荐)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 6.更新yum软件包索引 yum makecache fast 7.安装DOCKER yum -y install docker-ce 8.启动docker systemctl start docker 9.测试 docker version docker run hello-world 10.卸载 systemctl stop docker yum -y remove docker-ce rm -rf /var/lib/docker
配置阿里云加速 1 2 3 4 5 6 7 8 9 10 11 12 1. 新建目录sudo mkdir -p /etc/docker 2. 添加加速源sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors" : ["https://82m9ar63.mirror.aliyuncs.com" ] } EOF 3. 加载生效sudo systemctl daemon-reload sudo systemctl restart docker
2. 安装MYSQL 无脑安装法(不挂载目录) 1 docker run --name mysql -p 3306 :3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
挂载目录法 1、下载 mysql 镜像
2、创建 Master 实例并启动
1 2 3 4 5 6 7 8 9 10 11 12 docker run -p 3306:3306 --name mysql \ -v /mydata/mysql5.7/log:/var/log/mysql \ -v /mydata/mysql5.7/data:/var/lib/mysql \ -v /mydata/mysql5.7/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 参数说明 -p 3306:3306:将容器的3306端口映射到主机的3306端口 -v /mydata/mysql5.7/log:/var/log/mysql:将配置文件夹挂在到主机 -v /mydata/mysql5.7/data:/var/lib/mysql:将日志文件夹挂载到主机 -v /mydata/mysql5.7/conf:/etc/mysql:将配置文件夹挂载到主机 -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
3、修改基本配置
vim /mydata/mysql5.7/conf/my.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [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 # 注意:skip-name-resolve一定要加,不然连接mysql会超级慢,加上会跳过域名解析 # skip-character-set-client-handshake 为跳过字符编码客户端与服务端的握手过程
4、修改后重启 Mysql 服务:
docker restart mysql
5、 授权root可以远程访问
1 2 3 4 5 6 7 8 9 1、进入master容器 docker exec -it mysql /bin/bash 2、进入mysql内部 (mysql -uroot -proot) 授权root可以远程访问( 与主从无关,为了方便我们远程连接mysql @后面应该为ip地址,现在是%表示所有ip都可以用root用户访问) grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;
6、自启动
1 docker update --restart=always mysql
3. 安装Redis 无挂载 1 docker run --name redis -p 6380:6379 -d redis
有挂载 1 docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -d redis:3.2 redis-server --appendonly yes
1 2 3 4 5 6 7 docker exec -it redis bash cd /usr/local/bin ./redis-cli CONFIG SET requirepass 123456
4. RocketMQ安装 镜像地址
rocketmq-namesrv地址
https://hub.docker.com/r/rocketmqinc/rocketmq-namesrv
rocketmq-broker地址
https://hub.docker.com/r/rocketmqinc/rocketmq-broker
rocketmq-console-ng地址
https://hub.docker.com/r/styletang/rocketmq-console-ng
Namesrv的安装 执行以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 docker run --name namesrv -p 9876:9876 -e "MAX_POSSIBLE_HEAP=100000000" -d rocketmqinc/rocketmq sh mqnamesrv mkdir -p /usr/local/rocketmq cd /usr/local/rocketmq vim broker.conf brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 121.40.140.138 docker run --name broker -p 10911:10911 -p 10909:10909 -v /usr/local/rocketmq/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --link namesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" -d rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
console的安装 1 docker run --name=rocketmq-console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=121.40.140.138:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -d styletang/rocketmq-console-ng
5. 安装ELK 1 2 3 docker pull elasticsearch:5.6.11 docker pull kibana:5.6.11 docker pull logstash:5.6.15
ElasticSearch 1 2 3 4 5 6 7 8 9 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml docker run --name elasticsearch -p 9200 :9200 -p 9300 :9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -d elasticsearch:5.6 .11
Kibana 1 2 docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.159.130:9200 -p 5601:5601 \ -d kibana:5.6.11
Logstash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1)、在mydata/logstash中创建logstash.conf文件:文件内容如下 input { tcp { port => 4560 codec => json_lines } } output{ elasticsearch { hosts => ["192.168.159.130:9200"] index => "applog" } stdout { codec => rubydebug } } 注意: hosts一定不要写127或者localhost;这样docker容器内部127没有es实例,连不上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 docker run -d -p 4560:4560 \ -v /mydata/logstash/logstash.conf:/etc/logstash.conf \ --link elasticsearch:elasticsearch \ --name logstash logstash:5.6.15 \ logstash -f /etc/logstash.conf 安装插件: https://github.com/logstash-plugins docker exec –it logstash /bin/bash (进入容器内容) cd /usr/share/logstash/bin (可以whereis logstash找到这个位置) logstash-plugin install logstash-codec-json_lines 我们对容器做了改变;为了以后方便,可以将这个容器再打包成新的镜像; 可以将修改好的容器制作为镜像,方便下次使用(也可直接推送到镜像仓库); docker commit logstash logstash_gmall:0.0.1
6. Rabbitmq安装
docker pull rabbitmq:management
1 2 3 4 5 6 7 8 9 10 docker run -d --name rabbitmq --publish 5671:5671 \ --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \ rabbitmq:management 注: 4369 -- erlang发现口 5672 --client端通信口 15672 -- 管理界面ui端口 25672 -- server间内部通信口
1 2 在web浏览器中输入地址:http://虚拟机ip:15672/ 输入默认账号: guest 密码: guest
7. mongo 1 2 3 docker pull mongo:3.2 docker run -p 27017:27017 --name mongo -v /mydata/mongo/db:/data/db -d mongo:3.2
设置密码 1 2 docker -exec -it mongo mongo admin db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});