热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker数据卷用三种方法帮你分析volume

平常我们搭建容器最重要的是文件管理的保护和使用,一般正常的是用-v映射容器中的文件夹到本地,这样我们可以直接在主机编写文件,没必要再进入容

bea3596dd7f788d1b49202c15a3e2d9c.png

平常我们搭建容器最重要的是文件管理的保护和使用,一般正常的是用-v映射容器中的文件夹到本地,这样我们可以直接在主机编写文件,没必要再进入容器进行修改

一、单个容器数据卷映射

举例:新建一个容器可以映射本地/data/nginx/conf.d到容器中/etc/nginx/conf.d

docker run -d -it -v /data/nginx/conf.d:/etc/nginx/conf.d -p 80:80 --name=nginx nginx /bin/bash

 这样可以通过编写本机/data/nginx/conf.d/*.conf实现nginx的使用

二、多个容器共同访问数据卷实现数据的实时同步

1、创建nginx01

docker run -d -it -v nginx:/etc/nginx/conf.d -p 81:80 --name=nginx01 nginx /bin/bash

这里的-v nginx:/etc/nginx/conf.d这里的nginx是一个volum卷标名称(nginx前面没有任何路径标识),也可以像上面一样指定一个本地路径,这里单独的nginx用来更好讲解volume数据卷标

用docker volume ls可以查看系统的所有volume卷标

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

docker volume inspect nginx用来查看详细的nginx卷标信息及主机路径

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_19,color_FFFFFF,t_70,g_se,x_16

这样可以通过编写本机"/var/lib/docker/volumes/nginx/_data/*.conf实现nginx的使用

2、创建nginx02容器,挂载mysql01容器中的数据卷
 docker run -d -it -p 82:80 --name=nginx02 --volumes-from=nginx01 nginx /bin/bash

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

可以使用inspect命令来查看nginx02的卷标挂载位置可以看到和nginx01一样

docker inspect nginx02

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_18,color_FFFFFF,t_70,g_se,x_16

3、这样我们进入/var/lib/docker/volumes/nginx/_data,创建一个song.conf可以同时同步到nginx01和nginx02

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_19,color_FFFFFF,t_70,g_se,x_16

可以看到不管是nginx01,nginx02还是主机更新的文件都可以在容器中更新

三、写一个简单的Dockerfile来时间卷标管理 

1、编写一个简单的Dockerfile文件

vim Dockerfile (构建指令可以参考博客dockers章节 )

FROM nginx
MAINTAINER usersong
VOLUME ["/etc/nginx/conf.d"]
CMD echo "----end---"
CMD /bin/bash

2、运行Dockerfile文件

通过docker build -f Dockerfile -t nginx:v1 .来运行dockerfile,-t指定镜像名称和版本,记得后面有一个"." dockerfile构建过程就是上面写的4部

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_18,color_FFFFFF,t_70,g_se,x_16

这个就是我们用dockerfile自己创建的一个容器nginx:v1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

 3、开始用编写的镜像创建容器,并查看容器的mounts信息,这样可以实现提前构建好volume卷标信息

docker run -d -it -p 81:80 --name=nginx01 nginx:v1 /bin/bash 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_20,color_FFFFFF,t_70,g_se,x_16

docker run -d -it -p 82:80 --name=nginx02 nginx:v1 /bin/bash

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiJ6aKX6I2J5Li2,size_20,color_FFFFFF,t_70,g_se,x_16



推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
author-avatar
BigBigBigBigPX
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有