rpm -q centos-release
yum update -y
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
如果前面更新了,这一步可以省略
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
yum list docker-ce --showduplicates | sort -r
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
docker version
systemctl enable docker
docker images
docker search <镜像名称>
ctrl+D
docker logs NAMES
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
(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
(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
(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: "*"
(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
(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