Docker--容器挂载

本文详细介绍了Docker数据卷的概念、操作命令,以及如何将数据卷挂载到容器和宿主机目录。通过实例演示了创建数据卷、挂载到nginx和mysql容器的过程,强调了数据卷在容器数据持久化和管理中的重要作用。
摘要由CSDN通过智能技术生成

目录

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容器

                                

                        

               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rk..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值