docker run种容器(redis、etcd、MySQL、postgreSQL、ElasticSearch(ik分词器/kibana)、Kafka)

Docker使用

下载安装:https://docs.docker.com/engine/install/centos/

sudo yum install -y yum-utils
    
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache

sudo yum install docker-ce docker-ce-cli containerd.io

#启动docker
sudo systemctl start docker

#设置docker开机自启
sudo systemctl enable docker

#配置阿里云镜像(也可以不配,自行百度)

常用命令

#查看镜像
docker images
#搜索镜像
docker search mysql
#下载镜像
docker pull mysql
#删除镜像
docker rmi -f id
docker rmi -f $(docker images -ad)  #删除所有镜像


#查看正在运行的容器
docker ps -a

#退出容器
exit #停止容器并退出
ctrl+P+Q #容器不停止退出

#删除容器
docker rm 容器id
docker rm -f $(docker ps -aq)   #删除所有容器
docker ps -a -q|xargs docker rm   #删除所有

#启动和停止
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id  #强制停止

1、Redis

#拉取镜像
docker pull redis

#运行容器 
docker run -itd --name myredis -p 6379:6379 redis

#可以通过查看redis容器实例状态
docker ps 

#进入容器
docker exec -it myredis /bin/bash

#设置开机自启
docker update --restart=always myredis

#启动和停止容器
docker start/stop 容器id

#通过连接测试redis服务
redis-cli

#可以通过 RedisDesktopManager 远程连接宿主机端口,密码默认无。

2、Etcd

etcd使用2379和2380作为端口。2379供服务端使用,2380共其他etcd节点使用

#下载Etcd镜像
docker pull quay.io/coreos/etcd
docker images

#启动
docker run -itd -p 2379:2379 --restart=always --name etcd quay.io/coreos/etcd /usr/local/bin/etcd --advertise-client-urls http://0.0.0.0:2379 --listen-client-urls http://0.0.0.0:2379

#进入
docker exec -it etcd /bin/sh

etcd使用

#查看版本号
etcdctl --version
#etcdctl version: 3.3.8
#API version: 2

#设置版本
export ETCDCTL_API=3

#查看集群信息
etcdctl member list

#查看集群状态(leader结点)
etcdctl  --write-out=table endpoint status

#参数endpoints
etcdctl --endpoints=127.0.0.1:2379 version

#查看存储信息
etcdctl get "" --prefix
ETCDCTL_API=3 etcdctl get "" --prefix

#添加与删除
etcdctl get key(key为key-value的key值)
etcdctl del key

3、PostgreSQL

#拉取镜像
docker pull postgres

#启动容器(以下几种方式都可以,参数自行选择)
sudo docker run --name crpsql -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres

docker run --name crpsql -d postgres -p 5432:5432 -e POSTGRES_PASSWORD=123456 -v /postgre-sql:/var/lib/postgresql/data postgres

docker run -d -p 5432:5432  -v /postgre:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 --name crpsql postgres

#进入容器
sudo docker exec -it crpsql bash

#安装vi
apt-get update
apt-get install vim

#修改配置文件(可不改)
cd var/lib/postgresql/data/
vi pg_hba.conf
host all all md5

4、Mysql

docker pull mysql:8.0

-d:后台运行
-p:端口映射
-v:卷挂载
-e:环境配置
--name:容器名
docker run -d -p 3306:3306  -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0

docker exec -it mysql bash
#配置远程连接访问
vi /etc/mysql/mysql.conf.d/mysqld.cnf

5、Elasticsearch

  • 安装elasticsearch
#1.设置max_map_count不能启动es会启动不起来
#查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
#重新设置max_map_count的值
sysctl -w vm.max_map_count=262144

#2.拉取镜像
docker pull elasticsearch:7.2.0
#启动镜像
docker run --name es -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.2.0

#测试安装是否成功
curl localhost:9200
#或在浏览器访问http://139.198.30.18:9200/

  • 安装elasticsearch-head(可视化客户端,本地已安装可直接通过ip+端口连接)
  • 尝试连接easticsearch会发现无法连接上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。

#进入容器
docker exec -it es /bin/bash 

vi config/elasticsearch.yml
#在最下面添加:
http.cors.enabled: true
http.cors.allow-origin: "*"

#退出重启,docker restart es

  • 安装ik分词器
#将ik分词器插件的压缩包上传至服务器,然后将其上传到es容器
docker cp test/elasticsearch-analysis-ik-7.2.0.zip es:/usr/share/elasticsearch/plugins

#进入容器
docker exec -it elasticsearch /bin/bash  
#创建目录
mkdir /usr/share/elasticsearch/plugins/ik

#将文件压缩包移动到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.2.0.zip /usr/share/elasticsearch/plugins/ik

#进入目录
cd /usr/share/elasticsearch/plugins/ik

#解压
unzip elasticsearch-analysis-ik-7.2.0.zip

#删除压缩包
rm -rf elasticsearch-analysis-ik-7.2.0.zip

  • 安装kibana
docker pull docker.elastic.co/kibana/kibana:7.2.0
#启动
docker run --name kibana -d --restart always --link es:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.2.0

docker exec -it kibana /bin/bash
#docker部署Kibana默认是英文版
vi /opt/kibana/config/kibana.yml
#在最后加上:,然后退出重启
i18n.locale: zh-CN

http://139.198.30.18:5601/

6、Kafka

#拉取zookeeper和kafka镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka

#1.运行zookeeper
docker run -d --name zookeeper --restart always -p 2181:2181 wurstmeister/zookeeper

#2.运行kafka
docker run --name kafka01 \
--restart always \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=139.198.30.18:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://139.198.30.18:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-d  wurstmeister/kafka  

#3.进入kafka容器
docker exec -it kafka01 /bin/sh

#4.进入路径
cd /opt/kafka_2.13-2.7.0/bin/

#5.运行kafka生产者发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic sun

#6.发送消息
{“datas”:[{“channel”:"",“metric”:“temperature”,“producer”:“ijinus”,“sn”:“IJA0101-00002245”,“time”:“1543207156000”,“value”:“80”}],“ver”:“1.0”}

#7.运行kafka消费者接收消息
/opt/kafka_2.13-2.7.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning

你可能感兴趣的:(微服学习,docker,etcd,postgresql,es,kafka)