一、linux虚拟机准备
1、购买阿里云-线上环境
2、自己搭建-测试环境
1、下载linux虚拟机镜像
http://mirrors.aliyun.com/centos/7/isos/x86_64/
2、使用vmware安装
3、linux虚拟机初始化设置
1、网络-固定ip设置
1)、使用NAT模式
2)、查看网关地址并记住
3)、修改网卡信息:
cd /etc/sysconfig/network-scripts
vi ifcfg-eno16777736
修改红色部分。并追加内容
重启网卡
service network restart
测试是否连通
ping baidu.com(是否可以连通外网)
ip addr(查看本机ip地址是否正确)
2、基础-工具安装
1、wget、vim
yum –y install wget
yum –y install vim*
2、更新yum源为阿里云
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、关闭防火墙
systemctl status firewalld (查看防火墙状态)
systemctl stop firewalld (停止防火墙)
systemctl disable firewalld(禁止开机启动)
二、Docker安装
https://www.docker.com/products/docker-engine
1、安装docker
检查内核版本,返回的值大于3.10即可。
uname -r
如果内核版本低,需要更新系统
yum update
或者安装官网进行完整安装:
操作系统 CentOS7.6 x64
Docker版本 18.06.1-ce
https://docs.docker.com/install/linux/docker-ce/centos/
1、Install required packages. yum-utils provides the yum-config-manager utility, and device-mapper-persistent-data and lvm2 are required by the devicemapper storage driver.
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2、Use the following command to set up the stable repository.
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3、查看版本
yum list docker-ce --showduplicates | sort -r
INSTALL DOCKER CE
yum -y install docker-ce-18.03.1.ce-1.el7.centos
systemctl start docker(启动docker)
systemctl enable docker(设为开机启动)
docker run hello-world
2、卸载docker
1.查询安装过的包
yum list installed | grep docker
删除安装的软件包
yum -y remove 名字
删除镜像/容器等
rm -rf /var/lib/docke
docker镜像加速
阿里云,容器镜像服务
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、MySQL安装
1、下载镜像文件
docker pull mysql:5.7
2、创建实例并启动
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用户的密码
MySQL配置
vim /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
3、通过容器的mysql命令行工具连接
docker exec -it mysql mysql -uroot -proot
4、设置root远程访问
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;
5、进入容器文件系统
docker exec -it mysql /bin/bash
6、解决MySQL连接慢的问题
在配置文件中加入如下,并重启mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析
四、Redis安装
1)拉取镜像
- docker pull redis
(2)创建redis容器
docker run -di --name=redis -p 6379:6379 redis
(3)若使用Redis Desktop Manager连接云服务器上的redis是,开放防火墙的6379端口的协议为UDP和TCP。
五、Nginx安装
1)拉取镜像
- docker pull nginx
(2)创建Nginx容器
- docker run -di --name=mynginx -p 81:80 nginx
3、修改nginx配置
- 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx .
- 修改文件名称:mv nginx conf 把这个conf移动到/mydata/nginx下
- 终止容器:docker stop nginx
- 执行命令删除原容器:docker rm $ContainerId
- 执行以下命令:
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
六、Rabbitmq安装
1、下载镜像文件
docker pull rabbitmq:management
2、创建实例并启动
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间内部通信口
3、测试
在web浏览器中输入地址:http://虚拟机ip:15672/
输入默认账号: guest 密码: guest
七、Mongodb安装
1、下载镜像文件
docker pull mongo:3.2
2、创建实例并运行
docker run -p 27017:27017 --name mongo -v /mydata/mongo/db:/data/db -d mongo:3.2
3、使用mongo命令进入容器
docker exec -it mongo mongo
4、安装mongo客户端
https://robomongo.org/
八、ElasticSearch+Logstash+Kibana安装
1、下载镜像文件
docker pull elasticsearch:5.6.11
docker pull kibana:5.6.11
docker pull logstash:5.6.15
2、创建实例
1、ElasticSearch
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
特别注意:
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES
2、Kibana
docker run --name kibana -e
ELASTICSEARCH_URL=http://192.168.159.130:9200 -p 5601:5601
-d kibana:5.6.11
3、Logstash
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实例,连不上
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
上传Docker镜像到阿里云(阿里云仓库管理里面有步骤):
命令行登录到阿里云的doker仓库,–username为阿里云的用户名
docker login --username=forsumlove registry.cn-hangzhou.aliyuncs.com
为本地镜像添加tag
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lfy/gmall:[镜像版本号]
docker tag fb11fcb28ea0 registry.cn-hangzhou.aliyuncs.com/lfy/gmall:logstatsh_0.0.1
push到docker仓库
docker push registry.cn-hangzhou.aliyuncs.com/lfy/gmall:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/lfy/gmall:logstatsh_0.0.1
登录阿里云查看已上传的镜像列表:https://cr.console.aliyun.com/#/imageList
从阿里云自己的仓库拉取
docker pull registry.cn-hangzhou.aliyuncs.com/lfy/gmall:[镜像版本号]
4、建立索引
5、日志检索
九、zookeeerp安装
这个我另外一篇博客有,这里不在写!!
十、Apollo安装(携程)
https://github.com/ctripcorp/apollo
1、下载镜像(非官方)
https://hub.docker.com/r/idoop/docker-apollo
docker pull idoop/docker-apollo
1)、创建ApolloPortalDB 并导入如下sql
https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/portaldb/V1.0.0__initialization.sql
2)、创建ApolloConfigDBDev 并导入如下sql
https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/configdb/V1.0.0__initialization.sql
3、使用 Docker Compose 启动
创建 docker-compose.yaml 文件
version: ‘2’
services:
apollo:
image: idoop/docker-apollo:latest
# portal若出现504错误,则将网络模式改为host. host模式下如果想改端口,参考下方修改端口的环境变量
network_mode: “host”
ports:
- 8070:8070
volumes:
# 如果需要查看日志,挂载容器中的/opt路径出来即可.
- ./logs:/opt
# 如果portal需要开启ldap或ad域验证,须挂载此ldap配置文件
# - ./application-ldap.yml:/apollo-portal/config/application-ldap.yml:ro
environment:
# 开启Portal,默认端口: 8070
PORTAL_DB: jdbc:mysql://192.168.159.200:3306/ApolloPortalDB?characterEncoding=utf8
PORTAL_DB_USER: root
PORTAL_DB_PWD: root
# 如果portal需要开启ldap或ad域验证,须设置该环境变量为TRUE
#PORTAL_LDAP: "TRUE"
# 开启dev环境, 默认端口: config 8080, admin 8090
DEV_DB: jdbc:mysql:// 192.168.159.200:3306/ApolloConfigDB?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: root
# 开启fat环境, 默认端口: config 8081, admin 8091
# FAT_DB: jdbc:mysql://192.168.1.28:3306/ApolloConfigDBFat?characterEncoding=utf8
# FAT_DB_USER: root
# FAT_DB_PWD: toor
# 可修改端口.
DEV_CONFIG_PORT: 8050
DEV_ADMIN_PORT: 8051
# 指定远程uat地址
#UAT_URL: http://192.168.1.2:8080
# 指定远程pro地址
#PRO_URL: http://www.example.com:8080
整理可用的配置如下
version: ‘2’
services:
apollo:
image: idoop/docker-apollo:latest
network_mode: “host”
volumes:
- ./logs:/opt
environment:
PORTAL_DB: jdbc:mysql://192.168.159.200:3306/ApolloPortalDB?characterEncoding=utf8
PORTAL_DB_USER: root
PORTAL_DB_PWD: root
DEV_DB: jdbc:mysql://192.168.159.200:3306/ApolloConfigDB?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: root
2、启动服务
docker-compose up –d
3、如果启动出错,查看容器日志
docker logs 容器id
4、访问apollo
http://192.168.159.200:8070
账号 apollo 密码 admin
十一、Docker容器开机自启
docker update --restart=always xxx
docker update --restart=always mysql
docker update --restart=always mongo
docker update --restart=always rabbitmq
docker update --restart=always elasticsearch
docker update --restart=always kibana
docker update --restart=always logstash
docker update --restart=always nginx
docker update --restart=always redis
docker update --restart=always zookeeper
docker update --restart=always opt_apollo_1
其中表达有些难以理解,读者可私信,我会做一回答!!!
项目使用技术不同,使用环境不同可能会出现配置出错的问题!!!