Docker安装教程

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分为以下几个部分:

  1. docker客户端。

我们在shell中运行docker ps,docker image,其实调用的是docker客户端程序。一般存在于/usr/bin下,名字叫就做docker.

  1. docker守护

存在于/usr/bin下,名字叫dockerd。我们讲的docker服务,实质上更多的就是这个dockerd服务。

  1. 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:端口映射配置

以上便是基本使用啦~

相关推荐
J2虾虾17 小时前
Docker启动超时,吓得我一身汗
运维·docker·容器
码农小卡拉18 小时前
Ubuntu22.04 安装 Docker 及 Docker Compose v2 详细教程
ubuntu·docker·容器
一生只为赢18 小时前
通俗易懂:ARM指令的寻址方式(三)
运维·arm开发·数据结构·嵌入式实时数据库
运维行者_18 小时前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
液态不合群19 小时前
Nginx多服务静态资源路径冲突解决方案
运维·nginx
Getgit19 小时前
Linux 下查看 DNS 配置信息的常用命令详解
linux·运维·服务器·面试·maven
数通工程师19 小时前
企业级硬件防火墙基础配置实战:从初始化到规则上线全流程
运维·网络·网络协议·tcp/ip·华为
EasyNVR20 小时前
docker版EasyNVR如何使用同步插件教程(包含网盘挂载,路径映射等)
docker·容器·音视频
岁岁种桃花儿20 小时前
详解kubectl get replicaset命令及与kubectl get pods的核心区别
运维·nginx·容器·kubernetes·k8s
捷智算云服务20 小时前
告别运维割裂!捷智算GPU维修中心重新定义“全栈式”维修新标准
运维·服务器·性能优化