docker、es数据库
Docker 开源的应用容器引擎
Docker意为“搬运工”,“构建…装载…运行…任何应用…任何地方”
打包应用以及依赖包到一个可移植的镜像中,发布在 Linux或Windows操作系统的机器
容器是完全使用沙箱机制,相互之间不会有任何接口
Docker在本质上是一个附加系统
容器(container) 只读
镜像(image) 只读
容器 = 镜像 + 可读层
yum-utils是yum的工具包集合,由不同的作者开发,使yum使用起来更加方便和强大
$ sudo yum install -y yum-utils
帮助手册
docker --help
安装
yum install docker 安装
docker服务器启动
service docker start
关闭docker
service docker stop
使用docker运行名为hello-world的镜像
docker run hello-world
查看docker版本
docker -v
docker --version
docker运行相关信息
docker info
列出所有镜像
docker images
删除本地镜像
docker rmi +镜像名
列出本地容器
docker ps
搜索
docker search +镜像名
下载
docker pull +镜像名
启动某个镜像
docker run +镜像名
查看容器结果记录
docker logs +容器名
docker run相当于执行了两步操作:
1.将镜像放入容器中(docker create)
2.然后将容器启动,使之变成运行时容器(docker start)
docker start的作用是,重新启动被停止的容器
docker start +容器名
删除已经停止的容器
docker rm +容器名
查看容器日志
docker logs +容器名
容器改名,旧名字改为新名字
docker rename old_name new_name
镜像大小个数
docker system df
更改docker镜像源
vim /etc/docker/daemon.json
以上文件下加入以下镜像源
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://reg-mirror.qiniu.com"]
}
虚拟机创建新用户enen
useradd enen
passwd enen
删除用户testuser
userdel testuser
未增加用户名时,默认切换到root用户下
su +用户名
hello-world下载运行成功
但是docker images有,docker ps没有显示
Linux下docker 容器退出bash的两种实现方法
Ctrl + d 退出并停止容器;
Ctrl + p + q 退出并在后台运行容器;
es数据库
docker search docker.io/elasticsearch
docker pull elasticsearch:7.7.0
简单运行:只挂后台,环境设为单机运行,映射端口只有一个,加镜像id
docker run -d -e "discovery.type=single-node" -p 9200:9200 7ec
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
--name:设置镜像启动后的容器名称
-itd -i -t -d的缩写
-i 以交互模式运行容器,通常与-t同时使用
-t 为容器重新分配一个伪输入终端,通常与-i同时使用
-d 后台运行容器,并返回容器ID,也即启动守护式容器
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-e: 指定容器内的环境变量
单机运行: discovery.type=single-node
加大内存设置:-e ES_JAVA_OPTS="-Xms512m -Xmx512m"
es镜像版本名称,用于识别,id也可以:elasticsearch:7.7.0
测试节点启动成功
http://192.168.91.120:9200/
查看集群节点
http://192.168.91.120:9200/_cluster/state?pretty
查看集群健康状态
http://192.168.91.120:9200/_cluster/health?pretty
https://blog.csdn.net/qq_40942490/article/details/111594267
# 改解决方法未解决任何问题,还未搞清楚
产生这个问题的原因是因为ES的安全机制问题,解决办法如下所示
(注意:ES禁止Linux使用root用户启动,因此必须使用非root用户启动):
vi /etc/security/limits.conf
# 末尾加上以下四行
esyonghu soft nofile 65536
esyonghu hard nofile 65536
esyonghu soft nproc 4096
esyonghu hard nproc 4096
cd /etc/security/limits.d
vi 20-nproc.conf
# 修改某一行的*为用户名
-# Default limit for number of user's processes to prevent
-# accidental fork bombs.
-# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
将*号改成用户名
esyonghu soft nproc 4096
root soft nproc unlimited
vi /etc/sysctl.conf
# 增加以下一行在末尾
vm.max_map_count = 655360
sysctl -p
# 根据上面命令查看是否修改成功
vm.max_map_count = 655360