你的虚拟机需要联网以及yum哦~~
yum -y install docker-ce
在执行以上命令时出现以下错误。
- 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
查询时,有博主建议启动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版本
这里需要注意一点儿就是我在关闭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
我这里是配置的腾讯的镜像,首先打开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
docker network create es-net
- docker pull elasticsearch:7.12.1
- docker pull kibana:7.12.1
docker images
便可以看到拉取的镜像啦~
- 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:端口映射配置
- # 开放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中访问即可看到以下界面:
- 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:端口映射配置
以上便是基本使用啦~