docker 笔记
https://blog.csdn.net/huangjhai/article/details/118854733
基础篇:https://blog.csdn.net/Mr_YanMingXin/article/details/119504925
进阶篇:https://blog.csdn.net/Mr_YanMingXin/article/details/119597321
docker安装redis:
1.搜索redis镜像
docker search redis
2.下载redis镜像(可以指定版本号)
docker pull redis:版本
3.创建redis的宿主机挂载目录,用于挂载redis的数据以及配置文件
mkdir -p /root/docker/redis/data
mkdir -p /root/docker/redis/conf
4.新建redis.conf配置文件,并且进行配置。注意:redis容器中没有自带的redis.conf,通过挂载redis.conf解决此问题。
// 创建redis.conf,要在/root/docker/redis/conf 文件夹下
touch redis.conf
# bind 127.0.0.1 # 指定端口号,默认6379 port 6380 # 关闭安全模式,默认是yes protected-mode no # 配置redis持久化,默认是no --redis默认是将数据保存在内存中,redis重启后,数据会消失,配置后可以持久化到宿主主机本地 appendonly yes # 配置redis连接密码 requirepass 123456
5.创建容器并启动
docker run --name myredis -p 6379:6380 -v /root/docker/redis/data:/data -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
释义如下:
–-name:给容器定义name
-p:端口映射 宿主机:容器
-v:挂载自定义配置 自定义配置:容器内部配置
-d:后台运行
redis-server:redis服务以指定配置文件启动
--appendonly yes 开启持久化(我们在redis.conf配置了,所以没有用到)
--requirepass 123455 配置redis连接密码(我们在redis.conf配置了,所以没有用到)
6.查看docker状态
docker ps
7.通过redis可视化工具连接,就可以正常使用了,如果不能连接,可以看端口号是否放开。也可以通过容器内部连接测试
docker exec -it myredis redis-cli -h x.x.x.x -p xxxx
docker 安装ElasticSearch、Kibana
-------elasticsearch-----------
elasticsearch:非关系型数据库,常用语海量查询;
kibana:它是elasticsearch的可视化界面
1.下载镜像文件
docker pull elasticsearch:7.6.2 //存储和检索数据
docker pull kibana:7.6.2 //可视化检索数据
2.创建elasticsearch的宿主机挂载目录,用于挂载redis的数据以及配置文件
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
mkdir -p /mydata/elasticsearch/plugins
echo "http.host:0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
3.创建容器并启动
//--name为容器起名,-p暴露两个端口,9200以后发送http请求使用, //9300分布式集群状态下,节点之间的通信端口 //-e "discovery.type=single-node" \单节点运行 //-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \指定es初始占用64m,最大占用128m
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.6.2
4.连接测试,端口号9200,如果有防火墙或者安全组记得放开端口号
-----发现不能连接,查看logs日志
docker logs elasticsearch //查看日志
AccessDeniedException,拒绝访问
原因:elasticsearch容器中的data文件挂载至宿主机外边,由于用户权限的原因导致访问禁止,授予文件夹权限即可
rwx:root用户可读可写可执行,但其他用户只有读和执行的权限,故我们应该讲文件夹的权限均变为rwx
使用:chmod -R 777 /mydata/elasticsearch/ //将所有人权限均变为rwx
重新启动docker容器,在连接测试,正常
--------------------------end---------------------------------
-------------------kibana-------------------
1.安装kibana,创建容器并启动
// -e ELASTICSEARCH_HOSTS=http://ip:9200 映射的elasticsearch的访问url
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://ip:9200 -p 5601:5601 -d kibana:7.6.2
2.访问测试,如图就是成功,稍等重试就ok
成功!