首页 > 其他分享 >docker的数据管理

docker的数据管理

时间:2023-04-23 18:13:06浏览次数:40  
标签:容器 data1 宿主机 数据管理 挂载 docker 数据

一、如何管理docker容器中的数据

在这里插入图片描述

管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Containers)

二、数据卷

2.1 原理

将容器内部的配置文件目录,挂载到宿主机指定目录下

  • 数据卷默认会一直存在,即使容器被删除

  • 宿主机和容器是两个不同的名称空间,如果想进行连接需要用ssh,exec和attch也类似于ssh这种方式登录

  • 在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec

  • 因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可。方便又安全

2.2作用

  1. 修改配置文件例如,nginx. conf /usr/local/nginx/ conf/nginx.conf —> /container_ nginx/ conf/nginx. conf

  2. 容器内部产生的日志,如何收集将容器内部存方日志文件的目录挂载到宿主机指定目录下/container_ nginx/ log/access_ 1og/access_ log

  3. 传入变量挂载到宿主机在宿主机上添加变量内容,将变量放入共享目录,在容器中/etc/profile 直接加载就可以 export xxdir=/data/data1/xx.

2.3实操

需求:宿主机目录/var/www挂载到容器中的/data1

#注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
#-v选项可以在容器内创建数据卷,是volume的缩写
docker run -it --name test01 -v /var/www:/data1 centos:7 bash
ls

#返回宿主机进行查看
cd /var/www/
ls

#在容器中创建文件
echo "this is test01 file" > /data1/test.txt

#在宿主机查看是否有内容
cat /var/www/test.txt
1234567891011121314

1.#把宿主机挂载到容器内部

在这里插入图片描述

2、#另外开一个终端在宿主机进行查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-386M2Zv3-1641982958402)(F:\7.三阶\5.docker的数据管理.assets\image-20220112173713802.png)]

3、#在容器中创建文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Ibm8gIf-1641982958403)(F:\7.三阶\5.docker的数据管理.assets\image-20220112173843646.png)]

4、#在宿主机查看是否有内容 在这里插入图片描述

三、数据卷容器

3.1原理

让两个容器实现数据共享

3.2作用

如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

3.3实操

需求:创建数据卷容器

#创建一个容器作为数据卷容器
docker run -it --name test1 -v /data1 -v /data2 centos:7 bash #创建并进入容器
echo "this is test02 file" > /data1/test.txt #容器内创建测试文件1
echo "THIS IS TEST2 FILE" > /data2/TEST.txt #容器内创建测试文件2

#使用--volumes-from来挂载test2容器中的数据卷到新的容器
docker run -it --name test2 --volumes-from test01 centos:7 bash #创建并进入容器
cat data1/test.txt #查看测试数据是否同步
cat data2/TEST.txt
123456789

1、创建一个容器作为数据卷容器并创建文件

在这里插入图片描述

2、#使用–volumes-from来挂载test2容器中的数据卷到新的容器

在这里插入图片描述

总结

如何实现docker持久化

在生成容器的同时,加上-v选项,指定把当前服务器的目录映射到容器中

 

标签:容器,data1,宿主机,数据管理,挂载,docker,数据
From: https://www.cnblogs.com/sj5426/p/17347333.html

相关文章

  • docker常用命令
    一、Docker基本概念1.镜像(Image)Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。docker的镜像是由镜像......
  • docker部署gitlab-runner
    要求在注册runner之前,您必须首先:将其安装在与安装GitLab的服务器不同的服务器上获取令牌:对于共享运行器,让管理员转到GitLab管理区域并选择Overview>Runners对于grouprunner,转到CI/CD>Runners对于projectrunner,转到Settings>CI/CD并展开Runners部分生成配......
  • docker.sock 和 docker.socket 无操作权限的修复
     问题:第三软件jenkins等,甚至docker本身都有可能报如下无权限操作的错误:docker:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Posthttp://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create:dialuni......
  • docker runner
    dockerexec-itgitlabcat/opt/gitlab/embedded/service/gitlab-rails/VERSION11.1.14安装gitlab-runnerdocker安装方式1查看gitlab版本dockerexec-itgitlabcat/opt/gitlab/embedded/service/gitlab-rails/VERSION2安装runnerdockerrun-itd-v/data/devops......
  • docker基础命令
    注意:vgantrunhttps://hub.docker.com修改docker镜像仓库的地址:(原因直接采用docker自己配置的拉取比较慢,因此自己选择国内的一些镜像仓库速度要快一些)修改步骤:1.根据不同系统的daemon.json的位置不同,目前我采用的是centos7路径是/etc/docker/daemon.json2.先查......
  • python+playwright 学习-55 在docker 容器中运行playwright脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。镜像查看所有可用的图像标签ht......
  • 基于docker 安装的gitlab 升级
    gitlab升级背景现在的gitlab版本是13.0.1,目标是14.9.5因为,这个版本及以后支持禅道集成。升级过程先备份数据gitlab-rakegitlab:backup:create#有两个文件需要手工备份#gitlab.rb路径:/etc/gitlab/gitlab.rb#gitlab-secrets.json路径:/etc/gitlab/gitlab-secrets.js......
  • Docker 启动异常 不显示报错信息
    错误的启动配置sudodockerrun--rm-d\-p80:80-p443:443nginx执行结果为返回容器id,但容器未启动,无报错信息sudodockerrun--rm-itd\-p80:80-p443:443nginxbash执行结果为容器启动并在后台挂起,但nginx未启动成功,无报错信息sudodockerrun......
  • docker一些常用命令
    dockerversion:查看Docker版本信息。该命令可以查看当前安装的Docker版本信息,包括Docker引擎、客户端、API等版本。dockerinfo:查看Docker的详细信息。该命令可以查看Docker的详细信息,包括容器、镜像、网络等。dockersearch:搜索DockerHub上的镜像。该命令可以在Docke......
  • Docker_存储卷-挂载
    Docker存储卷volumeDocker-managedvolume(docker管理卷)Bindmountvolume(绑定挂载卷)挂载Docker提供了3种方法将数据从Docker宿主机挂载(mount)到容器:volumes,Volumes由Docker管理,存储在宿主机的某个地方(在linux上是/var/lib/docker/volumes/ 受控存储bi......