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

以上便是基本使用啦~

相关推荐
tonngw1 分钟前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟2 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing3 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
码农101号4 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
powerfulzyh4 小时前
非Root用户启动SSH服务经验小结
运维·ssh
云道轩4 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
斯普信云原生组4 小时前
Docker构建自定义的镜像
java·spring cloud·docker
爱学习的小道长4 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
2201_761199044 小时前
k8s4部署
云原生·容器·kubernetes
EelBarb4 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu