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

以上便是基本使用啦~

相关推荐
幺零九零零6 分钟前
Docker底层- 命令详解
运维·docker·容器
爱喝水的鱼丶9 分钟前
SAP-ABAP:在SAP世界里与特殊字符“斗智斗勇”:一份来自实战的避坑指南
运维·服务器·数据库·学习·sap·abap·特殊字符
磊 子10 分钟前
第四章:网络层
运维·服务器·网络·计算机网络·运输层
广东大榕树信息科技有限公司1 小时前
如何运用国产信创动环监控系统来保障生产安全与效率提升?
运维·网络·物联网·国产动环监控系统·动环监控系统
野猪佩挤1 小时前
jenkins-ci/cd yaml模版配置
运维·ci/cd·jenkins
斯普信云原生组1 小时前
开源软件日志统一管理方案-Filebeat
运维·jenkins
网络风云2 小时前
Flask 的 Docker 部署指南
python·docker·flask
飞Link2 小时前
【Anaconda】Linux(CentOS7)下安装Anaconda教程
linux·运维·python
Ama_tor2 小时前
docker|F盘安装の1键部署软件及数据储存+2个保姆级运行实例
运维·docker·容器
@时间旅行者@2 小时前
LINUX离线安装postgres,rpm方式安装
linux·运维·服务器·postgresql·离线安装