码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker--容器挂载


    目录

    1、什么是数据卷

    2、数据卷操作命令

    2.1、创建和查找数据卷

     2.2、小结

    3、容器挂载到数据卷

    3.1、挂载数据卷命令

     3.2、案例-给nginx挂载数据卷 

    4、容器挂载到宿主机目录 

            1、去dockerhub搜索mysql并拉取镜像​编辑

            2、创建/mysql/data和/mysql/conf两个目录作为mysql容器的挂载点

            3、在DockerHub查看mysql镜像的详细资料,通过Mysq镜像创建并运行mysql器

            4、测试远程连接mysql容器


    1、什么是数据卷

    数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

    一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。

    2、数据卷操作命令

    数据卷操作的基本语法:docker volume [COMMAND]

    docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

    • create 创建一个volume

    • inspect 显示一个或多个volume的信息

    • ls 列出所有的volume

    • prune 删除未使用的volume

    • rm 删除一个或多个指定的volume

    2.1、创建和查找数据卷

            1、创建数据卷

            docker volume create html

            2、查看所有数据卷

            docker volume ls

            3、 查看数据卷详细信息卷

            docker volume inspect html

    我们创建的html这个数据卷关联的宿主机目录为`/var/lib/docker/volumes/html/_data`目录。

     2.2、小结

    数据卷的作用:

    • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

    数据卷操作:

    • docker volume create:创建数据卷

    • docker volume ls:查看所有数据卷

    • docker volume inspect:查看数据卷详细信息,包括关联的宿主机目录位置

    • docker volume rm:删除指定数据卷

    • docker volume prune:删除所有未使用的数据卷

    3、容器挂载到数据卷

    3.1、挂载数据卷命令

            我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:

    这里的-v就是挂载数据卷的命令:

    • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

     3.2、案例-给nginx挂载数据卷 

            1、将刚刚创建的html数据卷挂载到mynginx容器的 /usr/share/nginx/html/目录下

            docker run --name mynginx -v html:/usr/share/nginx/html -p 8080:80 -d nginx 

            2、 进入html数据卷所在位置,并修改HTML内容

    修改完成后访问: 

    4、容器挂载到宿主机目录 

    容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:

    • 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录

    • 直接挂载模式:宿主机目录 ---> 容器内目录

    大多数情况下不需要主动的创建数据卷 

    提示:目录挂载与数据卷挂载的语法是类似的:

    • -v [ 宿主机目录 ]:[ 容器内目录 ]
    • -v [ 宿主机文件 ]:[ 容器内文件 ]

    案例:给MySQL挂载宿主机目录

            1、去dockerhub搜索mysql并拉取镜像

            2、创建/mysql/data和/mysql/conf两个目录作为mysql容器的挂载点

            在conf目录下创建1个hmy.cnf的文件,内容如下:

     [mysqld]
    skip-name-resolve
    character_set_server=utf8
    datadir=/var/lib/mysql
    server-id=1000

            3、在DockerHub查看mysql镜像的详细资料,通过Mysq镜像创建并运行mysql容器

            要求:挂载/mysql/data到mysql容器中吧类数据存储目录

                     挂载/mysql/conf/hmy.cnf到mysql容器的配置文件

                     设置mysql密码

    docker run \
    --name myMysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -p 8406:3306 \
    -v /mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
    -v /mysql/data:/var/lib/mysql \
     -d \
    mysql:5.7.25

                    4、测试远程连接mysql容器

                                    

                            

                   

  • 相关阅读:
    观测云产品更新|新增基础设施 YAML 显示;新增日志查看器 DQL 搜索模式;优化应用性能监测等
    消息中间件篇之Kafka-高性能设计
    WPF DataGrid开箱即用支持全部勾选的DataGridCheckBoxColumn
    高防服务器与高防IP区别
    23上半年下午题
    基于肤色模型(YCbCr模型)的人面定位统计算法,Matlab实现
    【力扣】55. 跳跃游戏 <贪心>
    Elasticsearch:从 Elastic Stack 中的时间戳谈开去
    开发 Java 用小而美的框架,Solon v1.9.4 发布
    电源模块是什么?电源模块噪音过大的原因及解决办法!
  • 原文地址:https://blog.csdn.net/m0_46979453/article/details/125258160
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号