Skip to content
lllllanlllllan
/
主题文档open in new window
  • Win11 安装 Docker
    • Docker 更改镜像安装目录
      • Docker 镜像加速
        • Docker 命令
          • Docker 数据卷
            • 数据卷概念
              • 存在问题
                • 数据卷
                • 数据卷的配置
                  • 配置数据卷
                    • 查看容器的具体信息
                      • 进行修改测试
                      • 数据卷容器
                        • 创建数据卷容器
                          • 查看 volumeC 具体信息
                            • 尝试容器之间的通信
                            • 参考

                            Docker 数据卷

                            lllllan2022年5月28日大约 2 分钟

                            此页内容
                            • 数据卷概念
                              • 存在问题
                              • 数据卷
                            • 数据卷的配置
                              • 配置数据卷
                              • 查看容器的具体信息
                              • 进行修改测试
                            • 数据卷容器
                              • 创建数据卷容器
                              • 查看 volumeC 具体信息
                              • 尝试容器之间的通信
                            • 参考

                            # 数据卷概念

                            # 存在问题

                            1. Docker 容器如果意外挂掉,容器中的数据会随之消失
                            2. Docker 容器和外部机器不能直接交换文件
                            3. Docker 容器之间也无法直接进行数据交互

                            image-20220528150147917

                            # 数据卷

                            数据卷式宿主机中的一个目录或文件

                            • 当容器目录和数据卷目录绑定后,其中一方的修改会立即同步到另一方(可以做容器数据的持久化)
                            • 一个数据卷可以被多个容器同时挂在(可以做容器之间的数据交互)
                            • 一个容器也可以挂在多个数据卷

                            image-20220528150603500

                            # 数据卷的配置

                            创建启动容器时,使用 -v 参数设置数据卷

                            • 目录必须是绝对路径
                            • 如果目录不存在,将自动创建
                            • 可以挂在多个数据卷

                            # 配置数据卷

                            docker run -it --name <容器名> -v <宿主机中的绝对路径>:<容器中的绝对路径> <镜像名>:<版本号>
                            
                            docker run -it --name c1 -v D:/environment/docker-volumes/for-c1:/root/volume centos
                            
                            1
                            2
                            3

                            image-20220528153259938

                            # 查看容器的具体信息

                            docker inspect c1
                            
                            1

                            image-20220528153512701

                            # 进行修改测试

                            1. 本机的 volumes 目录下执行
                            mkdir hello.txt
                            
                            1

                            image-20220528153554779

                            1. 容器中 volume 目录下查看并执行
                            ls
                            
                            mkdir world.txt
                            
                            1
                            2
                            3

                            image-20220528153730118

                            1. 回到本机的 volumes 目录下查看
                            ls
                            
                            1

                            image-20220528153825880

                            多个容器挂在同一个数据卷

                            一个使用相同的命令,创建一个新的容器,并挂在同一个数据卷,这样多个容器之间就能直接进行数据传输了

                            # 数据卷容器

                            # 创建数据卷容器

                            docker run -it --name volumeC -v /volume centos
                            docker run -it --name c1 --volumes-from volumeC centos
                            docker run -it --name c2 --volumes-from volumeC centos
                            
                            1
                            2
                            3

                            image-20220528155151670

                            image-20220528155224225

                            image-20220528155249849

                            # 查看 volumeC 具体信息

                            docker inspect volumeC
                            
                            1

                            image-20220528155608222

                            # 尝试容器之间的通信

                            1. 在容器 c1 中执行
                            cd volume
                            mkdir hello-c2.txt
                            
                            1
                            2

                            image-20220528160121557

                            1. 在容器 c2 中查看并执行
                            cd volume
                            ls
                            mkdir hello-c1.txt
                            
                            1
                            2
                            3

                            image-20220528160238297

                            # 参考

                            Docker课程 | B站 黑马程序员open in new window

                            编辑此页open in new window
                            上次编辑于: 2022/5/28 16:06:13
                            贡献者: lllllan
                            上一页
                            Docker 命令
                            粤ICP备2021095794号
                            浙公网安备 33011002015830号
                            Copyright © 2022 lllllan

                            该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。

                            详情