docker容器共享宿主机文件-elasticsearch示范
docker是运行微服务的很好容器,但是往往微服务要读写大量数据,这些数据如果和应用一起存放到容器里边,则容器迁移、配置修改、故障等就可能导致数据丢失,所以,最好将数据和应用独立,应用以镜像的方式部署到容器里边,数据通过宿主机目录共享的方式挂载到容器里边,不过网上提供的很多资料只是说了如何共享,但是实践发现这个共享后,往往不能正常存取。通过日志分析发现是权限问题,这里就将如何配置详细说明,避免后来者走弯路。
docker-compose的方式实现
本文以elasticsearch搜索引擎docker部署为例,docker-compose.yml示例文件如下:
#启动elasticsearch搜索服务
version: "2"
services:
es:
restart: always
image: docker.io/elasticsearch:6.5.0
ports:
- "9200:9200"
- "9300:9300"
network_mode: host
volumes:
- /home/mole/data:/usr/share/elasticsearch/data
- /home/mole/plugins:/usr/share/elasticsearch/plugins
environment:
- ES_JAVA_OPTS=-Xms4g -Xmx4g
privileged: true
【docker容器共享宿主机文件-elasticsearch示范】其中
volumes
属性就是配置宿主机指定目录挂载到容器指定目录的配置,可以配置多个目录,:
号前面是宿主机的目录,后面是容器的目录。privileged
属性必须配置为true,否则就不能存取指定的目录。配置生效 首次启动docker容器执行命令
docker-compose up
即可,如果修改了docker-compose.yml配置文件,则必须先停止容器,然后再次启动方可生效。即:先执行docker-compose stop
,再执行docker-compose up
。推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- docker镜像探索----dive工具
- Nvidia|lxd容器安装cuda11
- Spring注解05|Spring注解05 @Import 给容器快速导入一个组件
- iOS【NotificationContent-App|iOS【NotificationContent-App Group共享】
- 02|02|简单使用Docker命令
- 斗罗大陆1(第39集)百度云下载【1080熟肉共享】完整版资源
- 图片容器
- Docker-Dockerfile