一、环境相关

1、docker安装相关

查询仓库内容

yum repolist all # 显示所有资源库 yum repolist enabled # 显示所有已启动的资源库 yum repolist disabled # 显示所有被禁用的资源库

2、设置镜像

#正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker•ce/linux/centos/docker-ce.repo
#更新yum软件包索引安装  
yum makecache fast1 
#安装 Docker 
yum install docker-ce docker-ce-cli containerd.

3、启动docker,运行,测试,查看镜像

​
[root@lysw /]# systemctl start docker
[root@lysw /]# docker run hello-world
​
Hello from Docker!
This message shows that your installation appears to be working correctly.
....
​
[root@lysw /]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
tomcat          latest    7a287e4562ea   2 weeks ago    680MB
nginx           latest    c919045c4c2b   2 weeks ago    142MB
elasticsearch   8.0.1     620a7a6cd294   3 weeks ago    1.2GB
hello-world     latest    feb5d9fea6a5   5 months ago   13.3kB
centos          latest    5d0da3dc9764   6 months ago   231MB
# 运行命令
docker run [OPTIONS] IMAGE [COMMAND][ARG...]
# 常用参数说明
--name="Name" # 给容器指定一个名字
-d # 后台方式运行容器,并返回容器的id!
-i # 以交互模式运行容器,通过和 -t 一起使用
-t # 给容器重新分配一个终端,通常和 -i 一起使用
-P # 随机端口映射(大写)
-p # 指定端口映射(小结),一般可以有四种写法
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort (常用)
containerPort
​

二、elasticsearch安装相关

ELK 8 加入了好多安全,学起来很麻烦,改用 7.17.1

1、下载镜像

 docker pull elasticsearch:7.17.1

2、运行elasticSearch

[root@lysw /]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
elasticsearch   7.17.1     b9fc6ca9dc52   2 weeks ago    1.22GB
tomcat          latest    7a287e4562ea   2 weeks ago    680MB
nginx           latest    c919045c4c2b   2 weeks ago    142MB
hello-world     latest    feb5d9fea6a5   5 months ago   13.3kB
​
exit # 容器停止退出
ctrl+P+Q # 容器不停止
docker rimi images  # 删除镜像

3、x限定内存大小

docker run -d --name ES7 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.17.1

3、ES目录说明

bin:启动文件
config:配置文件
log4j2.properties:日志配置文件
jvm.options:java虚拟机的配置
elasticsearch.yml:es的配置文件
data:索引数据目录
lib:相关类库Jar包
logs:日志目录
modules:功能模块
plugins:插件

4、删除容器

docker rm 50f5dae7b3f9
​
退出容器启动停止容器删除容器exit # 容器停止退出
ctrl+P+Q # 容器不停止退出12
docker start (容器id or 容器名) # 启动容器
docker restart (容器id or 容器名) # 重启容器
docker stop (容器id or 容器名) # 停止容器
docker kill (容器id or 容器名) # 强制停止容器1234
docker rm 容器id # 删除指定容器
docker rm -f $(docker ps -a -q) # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器1

5、进入正在运行的容器

# 命令1docker exec -it 容器id bashShe
[root@lysw vm]# docker exec -it elasticsearch /bin/bash
elasticsearch@a5b8e527549e:~$ 
elasticsearch@a5b8e527549e:~$ vi config/elasticsearch.yml
​
# 开启端口开端口命令:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
重启防火墙:
systemctl restart firewalld.servi

6、从容器里面拷文件到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径   
root@sz-H81U:/home/sz# docker cp -a fe5282e395eb:/demo_ws/ /home/sz/code/
root@sz-H81U:/home/sz# cd code/
root@sz-H81U:/home/sz/code# ls
a.txt  demo_ws

7、从宿主机拷文件到容器里面

docker  cp  要拷贝的文件路径    容器名:要拷贝到容器里面对应的路径
​
root@sz-H81U:/home/sz/code# docker cp a.txt 47683ef9b01e:/demo_ws/a.txt

8、数据持久化 参数 -v

使用本地配置文件,数据放在本地 ,有问题,有待进一步验证

-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data 
​
​
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:8.1.0

三、kibana的安装

1、下载镜像

[root@lysw elasticsearch]# docker pull kibana:7.11.1

注意要和elasticsearch本部一致

2、运行镜像

 docker run --name kibana -d  --link elasticsearch -p 5601:5601 kibana:7.17.1  #与ES建立关联通过 --link
Kibana can be accessed by browser via http://localhost:5601 or http://host-ip:5601 #测试运行

kibana汉化 kibana.yml 添加:

i18n.locale: zh-CN

【注意,Kibana的汉化没有做得很彻底,部分界面文字仍旧会是英文】

相关配置,安装,这个文档docker安装elasticsearch(最详细版)_Bright1668的博客-CSDN博客_docker安装elasticsearch

四、遇到的坑ES8.1.0:

1、问题:Empty reply from server

[root@lysw vm]# curl 127.0.0.1:9200
curl: (52) Empty reply from server

解决方法:

参考:安装elasticsearch8.0.1之后无法访问9200:Empty reply from server_Tony 西塔纳的博客-CSDN博客

​
##进入容器,修改elasticsearch.yml
[root@lysw config]# docker exec -it d31948cd75ef /bin/bash
elasticsearch@d31948cd75ef:~$ vi config/elasticsearch.yml
将其中的
xpack.security.enabled: true
#修改为,其他不要动,否则ES容器直接启动不了了
xpack.security.enabled: false
问题:使用外部配置文件,暂时无法启动
[root@lysw ~]# curl localhost:9200
{
  "name" : "b34422a82861",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "D-HStdfcQd-QWHXLvwqZIA",
  "version" : {
    "number" : "8.1.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3700f7679f7d95e36da0b43762189bab189bc53a",
    "build_date" : "2022-03-03T14:20:00.690422633Z",
    "build_snapshot" : false,
    "lucene_version" : "9.0.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
[root@lysw ~]# 
​

2、重要参考链接

elasticsearch-head 以及其他的安装参考docker安装elasticsearch(最详细版)_Bright1668的博客-CSDN博客_docker安装elasticsearch

五、权限

1、权限问题

用 root 账号执行chmod命令:

#chmod -R 777 dirPath       

参数 -R 表示递归,dirPath及其之内的所有文件夹、文件都被改变了权限。

例子:

#chmod -R 777 /home/user1/workspace/git

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐