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

以上便是基本使用啦~

相关推荐
腾讯蓝鲸智云8 小时前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
苍煜10 小时前
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
网络·docker·容器
疯狂成瘾者10 小时前
服务器的单体和集群
运维·服务器
liuhuizuikeai11 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
charlie11451419114 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
gwjcloud14 小时前
Kubernetes从入门到精通(高级篇)04
云原生·容器·kubernetes
飞Link14 小时前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
SWAGGY..14 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
张文君15 小时前
上古世纪服务端编译安装AAEmu docker编译安装
运维·docker·容器
雾岛心情16 小时前
小铭邮件管理工具箱的界面(公司版)
运维·服务器·工具·o365·小铭邮件工具箱(公司版)