Docker 实现挂载的三种方式

这篇具有很好参考价值的文章主要介绍了Docker 实现挂载的三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.为什么有挂载?

容器中运行的应用,有可能会产生数据,如果将数据直接存储到容器中,如果删除容器时,容器中的数据会一起被删除,例如:

如果运行的是数据库容器,数据库容器直接保存的数据文件,删除容器时,容易导致数据丢失

为了防止数据丢失,可以把数据保存到宿主机上,这样有便于容器之间的数据共享

二.挂载方式: 单个文件 文件夹 数据卷

1.单个文件

命令如下:

docker run -d --name cat4 \

--restart = always \

-v ~/server.xml:/usr/local/tomcat/conf/server.xml \

tomcat:8

这段代码一共完成了:

1.创建了一个新的容器,运行的是tomcat8,当宿主机重启时,会自动启动该容器,给容器命名为cat4,方便输入查看日志命令,-d为后台运行

2.用文件挂载的方式,将宿主机的server.xml文件挂载到容器的/usr/local/tomcat/conf/server.xml文件,可以理解为/usr/local/tomcat/conf/server.xml相当于一个快捷方式

可通过命令:docker inspect cat4 查看容器详情

docker挂载,docker,容器,运维,java

2.文件夹

命令如下:

docker run -d --name mysql \ 

-v /data/mysql:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=root \

mariadb

这段代码一共完成了:

1.创建了一个新容器,运行mariadb,命名为mysql,将文件夹的挂载方式,将宿主机的/data/mysql文件夹挂载到容器的/var/lib/mysql路径中,-v会自动创建宿主机文件夹,-e配置环境变量

2.其中/var/lib/mysql和MYSQL_ROOT_PASSWORD=root视镜像源而定

创建完成之后,同样可以运行docker inspect mysql 查看容器详情

此外,还可以运行命令: ll /data/mysql 查看挂载源文件,此时是有数据的

docker挂载,docker,容器,运维,java

 还可以运行命令: docker rm -f mysql 删除容器

删除容器后继续运行命令: ll /data/mysql,结果是一致的,因为文件是存在宿主机上的

3.数据卷

数据卷的本质上还是文件夹,docker可以自动指定一个挂载文件夹,但是路径比较深,而且还惨杂随机字符,所以可以创建一个数据卷,同时给其取一个别名,在使用路径时,就可以用别名表示完整文件夹路径,命令如下:

docker volume create my-vol  创建数据卷,名称为my-vol 

docker volume ls 查看数据卷列表

docker挂载,docker,容器,运维,java

docker inspect my-vol 查看数据卷详情,其中"/var/lib/docker/volumes/my-vol/_data"为存储数据的真实目录

docker挂载,docker,容器,运维,java

 准备好数据卷后,创建容器,与挂载文件夹的方式类似

docker run -d --name mysql1\

-v my-vol:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=root \

mariadb

手动指定my-vol挂载到/var/lib/mysql路径,删除容器时,数据卷不会删除,如需删除容器时连同数据卷一起删除,可以在删除命令后加 --volumes,如:docker rm -f mysql --volumes

如果没有手动指定挂载,会自动新建数据卷挂载,如下代码

docker run -d --name mysql2\

-e MYSQL_ROOT_PASSWORD=root \

mariadb

同样可以通过命令docker volume ls 查看数据卷列表,其指定的挂载文件夹路劲很复杂文章来源地址https://www.toymoban.com/news/detail-816972.html

到了这里,关于Docker 实现挂载的三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker数据管理之三种方式- 数据卷(Volumes)- 挂载主机目录(Bind mounts)- 数据卷容器(Data Volume Containers)

    文章主人公:帅哥BUG😎 文章路人: 路人  🤨   路人  😛 😎: docker在容器中管理数据主要有三种方式哦~ 🤨:  啊!,我记得docker在容器中管理数据主要方式是这两种吧  - 数据卷(Volumes) - 挂载主机目录(Bind mounts)      😛:  额,主要的方式是这两种?我怎么记得是这

    2024年02月05日
    浏览(58)
  • docker容器:docker镜像的三种创建方法及dockerfile案例

    目录 一、基于现有镜像创建 1、创建启动镜像 2、生成新镜像 二、基于本地模板创建  1、OPENVZ 下载模板 2、导入容器生成镜像 三、基于dockerfile创建  1、dockerfile结构及分层 2、联合文件系统 3、docker镜像加载原理 4、dockerfile操作常用的指令 (1)FROM指令 (2)MAINTAINER 指令 (3)RUN指令

    2023年04月20日
    浏览(48)
  • Docker系列---【Docker设置时区的三种方式】

    将宿主机与容器的时间进行挂载,直接使用宿主机的时区

    2024年02月17日
    浏览(35)
  • Docker安装的三种方式

    下载解压: 配置镜像加速: 作为服务启动: 启动: 下载地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 从 docker 安装包版本下载对应所有依赖包: 将依赖包移动到安装包目录下: 安装: 开启docker并将其设置成开机自启动: 配置镜像加速: 卸载: 卸载旧版本:

    2024年02月11日
    浏览(47)
  • 【Docker】网络配置的三种方式

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年01月18日
    浏览(66)
  • docker 查看日志的三种方式

    docker logs命令是 Docker 的日志管理工具,它能够在终端中打印出容器的标准输出和错误输出。

    2024年04月25日
    浏览(46)
  • docker ps -a命令以及容器的三种状态

    docker ps -a命令用于列出所有的Docker容器,包括正在运行和已经停止的容器。该命令的输出结果包含以下信息: CONTAINER ID:容器的唯一标识符; IMAGE:容器所使用的镜像; COMMAND:容器启动时执行的命令; CREATED:容器的创建时间; STATUS:容器的状态; PORTS:容器所使用的端口

    2024年02月07日
    浏览(45)
  • Docker存储目录迁移的三种方式

    背景: 随着docker的使用时间越来越长,导致镜像和容器越来越多,占满了系统盘空间,这时,我们需要给它们搬个家了 下面咱们提供三种方式 docker info :查看docker的存储等相关信息 1、停止docker 服务 2、备份数据到新的存放路径 3、备份 /var/lib/docker 路径 4、创建软连接 5、启

    2024年02月07日
    浏览(54)
  • 为Java应用创建Docker镜像的三种方式

    在 Dockerfiles 出现的很久之前,Java 开发者大多使用单体应用方式部署(WARs, JARs, EARs, 等等)。现在如你所知,最好的做法是为每个小业务单独部署的微服务方式。你构建的不是一个巨大的单体应用程序,而是使多个可以独立运行的小服务。 这正是 Docker 的用武之地。如果你想

    2023年04月26日
    浏览(36)
  • 【Docker】Docker挂载和修改容器中的目录及配置文件的若干种方式

    我们知道,Docker相当于提供了一个 独立于宿主机的运行环境。当我们使用Docker部署了中间件例如nginx的容器后,一般都是需要修改配置文件的。那么我们想到的第一个方法就是进入容器去修改[1]。 1.进入容器内修改 首先我们需要有一个已经启动的容器。pull image后通过run-d -

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包