docker的具名挂载与匿名挂载实现

 更新时间:2022年03月14日 15:02:24   作者:思诚代码块  
本文主要介绍了docker的具名挂载与匿名挂载实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

大家好,今天我们分享一下docker 的具名挂载与匿名挂载

以这条命令举例

[root@localhost ~]# docker run -d -P --name nginx02  -v /etc/nginx/  nginx
d8e9b9084cf884e7e0d11c560c3f50d94f2d4a2d9c77fccb3f52b5cfd8e55392
[root@localhost ~]# 

这里我们就没有给它指定端口: 它对应的外网端口是随即的

查看一下正在运行的容器:

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                     NAMES
d8e9b9084cf8   nginx          "/docker-entrypoint.…"   11 minutes ago   Up 11 minutes   0.0.0.0:49153->80/tcp, :::49153->80/tcp   nginx02
6d6fa6a4c6d7   5d0da3dc9764   "/bin/bash"              32 hours ago     Up 32 hours                                               nice_panini
[root@localhost ~]# 

对应的外网端口是49153

我们可以使用浏览器上访问:http://192.168.1.12:49153

在这里插入图片描述

这是docker数据卷命令的帮助:

[root@localhost ~]# docker  volume  --help 

Usage:  docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.

这些都是匿名的挂载 ,因为没有给它起名字

DRIVER    VOLUME NAME
local     3f0cc224bb62dceae38c25d6eaee76512b39ec786590099f4b2930674640756f
local     8e16818bb95e740e59e5ef920e54751eb64db44f4cf43841a9c45aa6ad6646cc
local     686e9b7764c19581aea3107940fc28c68121759ce28b31fabc0fce00659ff7ca
local     882c0d1810e3ac6fddabcff2c65f1022605f450a6c49504edf57e78de14da1e5
local     1490f17c760b935d926fb1fedc7de4e0e07f1084fcf8c769c672d50f43757f8f
local     471762be4837d40ad175b7cfe74b81a51b4b3e752cb6f15e7e79d09ffc5f65fc
local     af4dc486d8335ec0e524c0e30a0ae037ef05dfa7a4ed3e4e0dd59954c5084a9e
local     c26b0f08ebdb140d91cb450313e9e314239c1c3553a612e6534154006aa19744
local     c52728c97a7ee672216ccb2d4392fa83bc480dd9646ddb5577e1124eb98e15b6

这里写一个具名挂载

[root@localhost ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx 

看最后的一行,就是具名挂载

[root@localhost ~]# docker volume ls
DRIVER    VOLUME NAME
local     3f0cc224bb62dceae38c25d6eaee76512b39ec786590099f4b2930674640756f
local     8e16818bb95e740e59e5ef920e54751eb64db44f4cf43841a9c45aa6ad6646cc
local     686e9b7764c19581aea3107940fc28c68121759ce28b31fabc0fce00659ff7ca
local     882c0d1810e3ac6fddabcff2c65f1022605f450a6c49504edf57e78de14da1e5
local     1490f17c760b935d926fb1fedc7de4e0e07f1084fcf8c769c672d50f43757f8f
local     471762be4837d40ad175b7cfe74b81a51b4b3e752cb6f15e7e79d09ffc5f65fc
local     af4dc486d8335ec0e524c0e30a0ae037ef05dfa7a4ed3e4e0dd59954c5084a9e
local     c26b0f08ebdb140d91cb450313e9e314239c1c3553a612e6534154006aa19744
local     c52728c97a7ee672216ccb2d4392fa83bc480dd9646ddb5577e1124eb98e15b6
local     juming-nginx

显示数据卷的具体信息

[root@localhost ~]# docker volume inspect juming-nginx 
[
    {
        "CreatedAt": "2022-03-05T18:16:53+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]

docker 容器中所有的卷,在没有指定目录的情况下,都在var/lib/docker/volumes/juming-nginx/_data",

我们可以通过具名挂载找到卷的位置,大多数情况下,我们使用具名挂载

关于docker的挂载问题,有三个比较容易混淆的概念: (区分的方式)

1.具名挂载:-v 参数 卷名:容器内路径

2.匿名挂载:-v 参数后面 没有写上容器之外的地址, docker 自己会在docker内部给你找个位置

3.指定路径挂载: -v /宿主机路径::容器内路径

这里有一个权限问题:

[root@localhost ~]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:rw  nginx 
6590da464b6ea5cecf58f1cfcdfe2df35092383adb7aaddac4ca5d463367c979

rw :可读可写的权限
ro : 可读权限

[root@localhost ~]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:ro  nginx 

这个会对我们挂载出来的内容进行限定

ro 权限说明命令只可以被宿主机操作,容器的内部将无法进行操作

平时不需要动它

到此这篇关于docker的具名挂载与匿名挂载实现的文章就介绍到这了,更多相关docker具名挂载与匿名挂载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker系列之使用Docker Compose编排容器

    Docker系列之使用Docker Compose编排容器

    Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,这篇文章主要介绍了Docker系列之使用Docker Compose编排容器,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Docker下Redis集群(主从+哨兵)安装配置的实现步骤

    Docker下Redis集群(主从+哨兵)安装配置的实现步骤

    本文主要介绍了Docker下Redis集群(主从+哨兵)安装配置的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-07-07
  • 基于alpine用dockerfile创建的爬虫Scrapy镜像的实现

    基于alpine用dockerfile创建的爬虫Scrapy镜像的实现

    这篇文章主要介绍了基于alpine用dockerfile创建的爬虫Scrapy镜像的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 总结Docker不适合部署数据库的7大原因

    总结Docker不适合部署数据库的7大原因

    在本篇文章里小编给大家整理一篇关于Docker不适合部署数据库的7大原因,有兴趣的朋友们可以参考学习下。
    2021-01-01
  • 详解java项目打包docker镜像的几种方式

    详解java项目打包docker镜像的几种方式

    本文主要介绍了详解java项目打包docker镜像的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • docker部署Prometheus+Cadvisor+Grafana实现服务器监控

    docker部署Prometheus+Cadvisor+Grafana实现服务器监控

    这篇文章主要为大家介绍了docker部署Prometheus+Cadvisor+Grafana实现服务器监控,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • docker封装镜像及优化方式

    docker封装镜像及优化方式

    这篇文章主要介绍了docker封装镜像及优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • docker compose安装es+kibana 8.12.2的详细过程

    docker compose安装es+kibana 8.12.2的详细过程

    因云平台需要改造,es7升级为es8,所以记录一下,es8需要开启ssl认证,需要配置证书,全本带你用docker安装,便于后面es8的学习,这篇文章主要介绍了docker compose安装es+kibana 8.12.2的详细过程,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 如何在centos的docker里安装jupyter并开放端口

    如何在centos的docker里安装jupyter并开放端口

    上次有一朋友问小编如何在centos的docker里安装jupyter并开放端口呢?在这就不一一回复大家了,下面小编把我的个人经验分享到脚本之家平台,感兴趣的朋友一起看看吧
    2021-08-08
  • docker官方镜像下载及使用Dockerfile创建镜像的方法

    docker官方镜像下载及使用Dockerfile创建镜像的方法

    这篇文章主要介绍了docker官方镜像下载及使用Dockerfile创建镜像的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02

最新评论