docker 挂载卷,必会的docker数据管理(三)

2024-06-16 10:38

本文主要是介绍docker 挂载卷,必会的docker数据管理(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

回顾

命令回顾

卷挂载

方式一:-v 命令

方式二:复制容器的文件

1. 启动容器,先不挂载

2. docker cp 把运行中的 nginx 的内容复制出来

方式三:匿名挂载

第四种方式:具名挂载(推荐)

volume 维护卷

具名挂载实例

结语:


回顾

首先我们要安装 镜像 /【容器】,到 docker hub 的官网下载 (https://hub.docker.com/search?q=redis&type=image)。

命令回顾

# 启动 docker

systemctl  start  docker

# 查看 docker 状态

systemctl  status docker

#  停止 docker 

systemctl  stop  docker 

# 查看、启动、停止容器

docker ps -a   或  docker ps

docker start 容器id / 容器名

docker stop 容器id / 容器名

# 批量启动、停止、删除容器

docker start $(docker ps -aq)

docker stop $(docker ps -aq)

docker rm $(docker ps -aq)

# 启动一个容器(第一次运行)

docker  run  -d  --name  [自定义名]  -p  宿主机IP(Linux暴露外部的IP):容器IP  [镜像id / 镜像名:[tag] ] 

例如: docker run --name my-redis -p 6379:6379 -d redis:6.0  。 如果没有镜像会到 docker  hub 自动下载。

卷挂载

前言:假设我要修改容器中的配置,每次都得进入容器后台找到配置目录进行修改,这样非常的麻烦,所以这个时候就需要把容器中的配置挂载到外部 linux 环境。

方式一:-v 命令

# 将主机操作系统目录直接映射进容器

docker run --name mynginx -p 80:80 -v /usr/local/etc/nginx:/usr/share/nginx/html -d daee903b4e43

# --name:给容器自定义名称

# -p:端口暴露给外网

# -v:卷挂载, linux 目录:容器目录,需要注意的是,linux 目录无需到html 层。

 

挂载之后发现并不能访问 index.html,原因是 -v 挂载,会把容器中的内容清空,因为外部 linux 环境的目录是空的,所以映射给容器时,就清空了。

这个时候需要自己手动添加 html 页面,vi index.html,编写内容如下: 

 

docker inspect 容器ID /  容器名

# 查看资源详细信息。Binds 是容器挂载的路径。

  • 这种挂载方式并不推荐

 

方式二:复制容器的文件

1. 启动容器,先不挂载

例如: docker run -d --name my-nginx -p 88:80 daee903b4e43

# 命令语法:docker run -d --name [自定义名] -p 宿主机IP(Linux暴露外部的IP):容器IP [镜像id / 镜像名:[tag] ]

2. docker cp 把运行中的 nginx 的内容复制出来

[root@localhost ~]# docker cp --helpUsage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

 访问成功,访问的是默认首页。 如果用 -v 命令,挂载的目录是没有任何文件的,而且容器中的文件也会被清空。但这种方式也不是最优方式。

 

方式三:匿名挂载

docker run -d -p 80:80 --name mynginx \
-v /usr/share/nginx/html \
-v /etc/nginx \
daee903b4e43

# 斜杠:换行作用。匿名挂载的缺点是不好维护

docker ps

# 查看运行中的容器

docker inspect 912247bf4258

# 命令语法:docker inspect 资源ID / 资源名称,资源可以是镜像,也可以是容器。意思是查看资源的详细信息。下面我们查看容器挂载的路径在哪。

第四种方式:具名挂载(推荐)

volume 维护卷

volume 常用命令

docker volume --help  :帮助命令

docker volume ls  :查看挂载名列表

docker volume create  :创建

docker volume inspect  :查看信息,例如 docker volume inspect 3ecc56524f6972fde27d4e819b76fd806b8ec1e1db8b87a42210a2823182a917

docker volume rm / prune  :移除

# 以上命令自己去尝试,在此省略。

  • docker volume create 挂载名
    创建具名挂载,例如:docker volume create nginx-conf 。
    可以省略,挂载时必须命名。

  • docker volume inspect 挂载名
    查看挂载信息,例如:docker volume inspect nginx-conf

具名挂载实例

docker run -d -P --name mynginx \
-v nginx-conf:/etc/nginx \
-v nginx-html:/usr/share/nginx/html \
daee903b4e43

# -v 挂载名: 容器路径

docker inspect 容器ID / 容器名:查看挂载信息。 

 

 

结语:

至此,docker 挂载的内容全部介绍完了,多复习研究,官网也是介绍了一下。如果对你有帮助,欢迎留言讨论。

这篇关于docker 挂载卷,必会的docker数据管理(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066235

相关文章

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多