1. 安装yum
你的虚拟机需要联网以及yum哦~~
yum -y install docker-ce
1.1 NO package docker-ce available
在执行以上命令时出现以下错误。
NO package docker-ce available.
Error: Nothing to do
解决方法:
(1) 更新yum,使用yum -y upgrade(耗时较久哦~)
(2) 安装yum-utils,yum install -y yum-utils
(3) 配置docker的阿里镜像,yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4) 安装缓存,yum makecache fast
(5) 重新安装docker-ce,yum -y install docker-ce
2. 启动docker
查询时,有博主建议启动docker时,提前关闭防火墙,本次先不关闭有需求时执行以下命令即可。
# 查询当前防火墙状态
systemctl status firewalld
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
docker操作命令
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
docker images # 查看docker是否启动(或者输入docke然后tab看是否能够补齐~)
docker -v # 查看docker版本
2.1 关闭问题
这里需要注意一点儿就是我在关闭docker时发出了以下警告:
Warning: Stopping docker.servier, but it can still be activated by: docker.socket
docker分为以下几个部分:
- docker客户端。
我们在shell中运行docker ps,docker image,其实调用的是docker客户端程序。一般存在于/usr/bin下,名字叫就做docker.
- docker守护
存在于/usr/bin下,名字叫dockerd。我们讲的docker服务,实质上更多的就是这个dockerd服务。
- docket.socket
用来实现docker和dockerd之间API通讯,配置存在于/lib/systemd/system/docker.socket中
个人理解就是docket.socket作为一个服务端,当客户端将指令发送给dockerd(默认通过/var/run/docker.sock这个socket)。
因此需要完全关闭docker需要以下两个命令
systemctl stop docker
systemctl stop docker.socket
3. docker配置镜像(提升速度)
我这里是配置的腾讯的镜像,首先打开daemon.json文件
cd /etc/docker
# 当该路径下没有daemon.json文件时便创建一个
# touch daemon.json
vim daemon.json
# 然后添加该内容
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}
# 重启docker
systemctl restart docker
# 验证是否配置成功(执行以下命令找到Registry Mirrors便可以看到配置的镜像了)
docker info
4.安装elasticsearch以及kibana
(1) 首先创建一个网络,使得kibana能连接elasticsearch
docker network create es-net
(2) docker安装es以及kibana
docker pull elasticsearch:7.12.1
docker pull kibana:7.12.1
(3) 查询是否成功拉去镜像
docker images
便可以看到拉取的镜像啦~
(4) 运行es
docker run
--name es240331
-e "discovery.type=single-node"
-v es-data:/usr/local/elasticsearch7.12.1/data
-v es-plugins:/usr/local/elasticsearch7.12.1/plugins
-v es-logs:/usr/local/elasticsearch7.12.1/logs
--privileged
--network es-net
-p 9200:9200
-p 9300:9300
elasticsearch:7.12.1
docker run --name es240331 -e "discovery.type=single-node" -v es-data:/usr/local/elasticsearch7.12.1/data -v es-plugins:/usr/local/elasticsearch7.12.1/plugins -v es-logs:/usr/local/elasticsearch7.12.1/logs --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:7.12.1
命令解释:
-
-e "cluster.name=es-docker-cluster":设置集群名称
-
-e "http.host=0.0.0.0":监听的地址,可以外网访问
-
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m":分配内存大小
-
-e "discovery.type=single-node":单节点模式
-
-v es-data:/usr/local/elasticsearch7.12.1/data:挂载逻辑卷,绑定es的数据目录
-
-v es-logs:/usr/local/elasticsearch7.12.1/logs:挂载逻辑卷,绑定es的日志目录
-
-v es-plugins:/usr/local/elasticsearch7.12.1/plugins:挂载逻辑卷,绑定es的插件目录
-
--privileged:授予逻辑卷访问权
-
--network es-net :加入一个名为es-net的网络中
-
-p 9200:9200:端口映射配置
(5) 开放端口防火墙
# 开放9200端口用于http通信
firewall-cmd --zone=public --add-port=9200/tcp --permanent
# 开放9300端口用于ES集群间通信
firewall-cmd --zone=public --add-port=9300/tcp --permanent
# 重新加载防火墙使开放的端口即时生效
firewall-cmd --reload
# 查看开放的公共端口列表
firewall-cmd --zone=public --list-ports
查看当前虚拟机ip
ipconfig
# 当没有ipconfig命令时,安装net-tools
yum install net-tools
然后在windows中访问即可看到以下界面:
(6) 启动kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
docker run --name kibana240331 -e ELASTICSEARCH_HOSTS=http://es240331:9200 --network=es-net -p 5601:5601 kibana:7.12.1
命令解释:
-
--network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
-
-e ELASTICSEARCH_HOSTS=http://es240331:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-
-p 5601:5601:端口映射配置,
-
命令解释:
-
--network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
-
-e ELASTICSEARCH_HOSTS=http://es240331:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-
-p 5601:5601:端口映射配置
以上便是基本使用啦~