一、购买阿里云服务器,我选择的是centos7.3
踩坑点:
安装好docker,拉取es,之后需要配置端口映射,需要去阿里云配置安全组,设置规则(类似于虚拟防火墙),来开启我们需要的特定端口,这样我们在外网访问时就可以通过这个端口号访问了
二、安装docker
经常使用容易时候的一些命令:
docker logs -f id 查看日志
netstat -na 查看端口
docker stats查看容器cup使用信息
docker info查看使用的容器镜像的信息
docker ps -a 所有容器(包括停止的)
1、删除容器
1)首先需要停止所有的容器
docker stop $(docker ps -a -q)
2)删除所有的容器(只删除单个时把后面的变量改为image id即可)
docker rm $(docker ps -a -q)
3)删除全部的images
docker rmi -f $(docker images -q)
从官网文档可以查阅:https://docs.docker.com/get-docker/
第一步:移除之前的docker版本,相关组件
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
二、下载相关工具包、已经配置下载镜像,这里显示的是国外的,大家可以去配置一个阿里云的
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
(我这里用的是这个)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
三、安装docker,ce社区版,ee是企业版(收费)(至少需要centos7)
(安裝docker后我pull了一些東西,然后卸载了docker,重装,发现那个images还在,都能不能用了,去这个目录下,吧历史删了就没了)
cd /var/lib/docker/image/overlay2/imagedb/content/sha256/
$ sudo yum install docker-ce docker-ce-cli containerd.io
踩坑点: 设置镜像的时候,我设置了多个,用yum的时候一直报哪个冲突和找不到404的错误,最后去/etc/yum.repos.d路径下删去多配置的无关的.repo文件,已经修改Cetos-Base.repo文件中basicurl保留一个阿里云的就行,最后yum clean all;yum makecache;yum此时就可以用了。docker此时就可以用了
2、安装redis
1、先去docker-hub中查找自己需要的redis版本
docke pull redis:5.0.8(例如)
安装完成后,我们可以使用以下命令来运行 redis 容器:
$ docker run -itd --name redis-test -p 6379:6379 redis:5.0.8
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
接着我们通过 redis-cli 连接测试使用 redis 服务。
$ docker exec -it redis-test /bin/bash
到了这一步就相当于进入了redis容器中了,你可以查看文件,发现找不到redis,这是因为你docker run启动创建容器时,没有配置文件映射,所有没有redis.conf文件生成,你可以直接去建一个这个文件,通过这个文件配置去启动redis
不过你可以在下边这个路径中查看到一下有关redis的文件
redis-cli(进入redis命令交互行)
docker run :根据镜像创建一个容器并运行一个命令,操作的对象是 镜像;
docker exec :在运行的容器中执行命令,操作的对象是 容器
三、docker拉去es
docker pull elasticsearch:7.7.0
运行容器
ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:7.7.0
修改docker的应用配置,首先要进入到运行应用的终端
docker exec -it es /bin/bash
然后找到elasticsearch.yml配置文件
vi修改文件,在最后一行后添加跨域配置(不添加的话,你的eshead等会连不上)
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
重启容器
docker restart es
通过curl "http://localhost:9200"可以看到es的成功访问日志
如果es通过docker status查看发现占用内存很大,很卡,可以增加限制
docker run -d --name es6 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch:7.7.0(512换成256也行,看自己的服务器性能了)
(这个启动命令执行后,通过docker ps发现容器过一会就停了,我们可以通过 docker logs -f 容器id去看日志,发现有两种情况,一个是报错至少需要一个指定大小的jvm我们按照要求设定,因为es7版本要求Jvm启动默认是2g,如果不指定single-node单节点也会报错)
拉去eshead kibana设置端口映射(es要和kibana端口一样)
docker run -d --name es -p 3333:9200 -p 4444:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
docker run --name elasticsearch-head -d -p 5555:9100 docker.io/mobz/elasticsearch-head:5
docker pull kibana:7.6.2
阿里云需要去开通安全组,去自定义开启自己需要的端口号,这个也就是虚拟防火墙,只有开通了安全组才能进行对端口进行外网访问。我们在镜像启动容器时,会设置一个端口映射,然后在安全组中打开即可,docker logs -f id查看日志报错
下边贴上命令:
docker pull elasticsearch:7.6.2
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:7.7.0
docker pull mobz/elasticsearch-head:5
docker run -itd -p 5601:5601 -e SERVER_HOST="0.0.0.0" -e ELASTICSEARCH_URL="http://47.96.143.113:3333" --name kibana kibana:7.6.2
docker pull kibana:7.7.0
docker run -itd -p 5601:5601 -e SERVER_HOST="0.0.0.0" -e ELASTICSEARCH_URL="http://ES的IP:9200" --name kibana kibana:7.7.0