1、查看centos版本
rpm -q centos-release
2、更新yum
yum update -y
3、删除以前版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
4、安装yum工具
如果前面更新了,这一步可以省略
yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置阿里云镜像,速度快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、设置CentOS的安装密钥
rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
7、查看docker版本
yum list docker-ce --showduplicates | sort -r
8、安装最新版本的docker
yum install docker-ce docker-ce-cli containerd.io
9、启动
systemctl start docker
10、查看版本
docker version
11、设置自动启动
systemctl enable docker
12、查看下载的镜像
docker images
13、列出远程镜像
docker search <镜像名称>
14、退出容器
ctrl+D
15、查看日志
docker logs NAMES
16、设置阿里云镜像,快速下载软件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你申请的镜像号.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
17、安装mysql
(1) 下载
docker pull mysql
(2) 启动mysql
docker run -d --restart=always --name mysql -p 3306:3306 -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/log:/var/log/mysql -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
(3) 停止mysql
// 查看所有的容器
docker ps -a
// 停止容器
docker stop mysql
// 删除容器
docker rm mysql
// 删除镜像
docker rmi mysql
(4) 配置mysql
vi /home/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
(5) 进入交互容器中
docker exec -it mysql01 bash
18、安装redis
(1) 下载redis最新版
docker pull redis
(2) 启动redis
mkdir -p /home/redis/conf
touch /home/redis/conf/redis.conf
docker run -p 6379:6379 --name redis \
-v /home/redis/data:/data \
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
(3) 配置redis持久化
vi /home/redis/conf/redis.conf 加入appendonly yes
(4) 自启动redis
docker update redis --restart=always
19、安装elasticsearch
(1)下载
docker pull elasticsearch:7.4.2 // 检查和存储数据
docker pull kibana:7.4.2 // 可视化检索数据
修改镜像名称:docker tag <镜像ID> elasticsearch
删除原先的镜像: docker rmi <旧的镜像名称>
(2)配置
mkdir -p /home/elasticsearch/config
mkdir -p /home/elasticsearch/data
echo "http.host: 0.0.0.0" >> /home/elasticsearch/config/elasticsearch.yml
(3)启动ES
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx256m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
(4)启动kibana:7.4.2
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.1.100:9200 -p 5601:5601 -d kibana:7.4.2
chmod -R 777 /home/elasticsearch/ // 修改目录权限
docker logs elasticsearch // 查看日志
elasticsearch有2个端口,分别如下:
9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用
(5)进入容器
docker exec -it elasticsearch /bin/bash
(6)安装 ik 分词器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.0.0/elasticsearch-analysis-ik-8.0.0.zip
(7)修改 es 配置文件
vi ./config/elasticsearch.yml cluster.name: "docker-cluster" network.host: 0.0.0.0
# minimum_master_nodes need to be explicitly set when bound on a public IP
# set to 1 to allow single node clusters
# Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1
# just for elasticsearch-head plugin
http.cors.enabled: true
http.cors.allow-origin: "*"
20、安装zookeeper(单点部署)
(1)下载
docker pull zookeeper:3.4.9
(2)运行
docker run -d -p 2181:2181 -v /home/zookeeper/data:/data -v /home/zookeeper/conf:/conf --name=zookeeper --privileged=true zookeeper:3.4.9
如果运行失败,可以关掉防火墙,并把挂载本地的目录权限设置最高
查看状态:systemctl status firewalld
关闭防火墙: systemctl stop firewalld
禁用防火墙:systemctl disable firewalld
// 设置防火墙
chmod 777 /home/zookeeper/data
chmod 777 /home/zookeeper/conf
(3)自动运行
docker update zk --restart=always
21、安装Kafka(单点部署)
(1)下载
docker pull bitnami/kafka
(2)运行
docker run -d --name kafka -p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.199:2181 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.199:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-t bitnami/kafka
(3)自动运行
docker update kafka --restart=always
(4)进行容器
docker exec -it kafka /bin/sh
(5)进入 目录
$ cd /opt/bitnami/kafka/bin/
(6)生产者发送消息
$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic sun
// 发送消息
> {"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
(7)消费者接收消息
$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning