4、docker硬件交互和数据处理

 

4、docker硬件交互和数据处理4.1、硬件挂载(端口绑定)4.2、docker中GUI的显示4.3、docker容器和宿主机互传文件4.3.1、使用cp命名4.3.1.1、从容器内拷贝文件到主机上4.3.1.2、从宿主机拷贝文件到容器上4.3.2、使用数据卷4.3.2.1、数据卷概述4.3.2.2、数据卷使用

操作环境及软硬件参考配置如下:

4.1、硬件挂载(端口绑定)

1、在宿主机中建立udev规则(/etc/udev/rules.d/),参见【六、 Linux操作系统 ---- 6. 绑定设备ID 】章节

2、然后在开启容器时,将设置了规则的devices 通过 --device=/dev/myserial --device=/dev/rplidar 等参数挂载到docker容器中

3、docker 容器中就能发现该设备了

 

4.2、docker中GUI的显示

1、在宿主机中安装:

2、在宿主机中执行:xhost +

显示下图正常后,执行3步骤:

0

3、在宿主机中执行命令进入容器:

4、测试

 

 

4.3、docker容器和宿主机互传文件

 

4.3.1、使用cp命名

4.3.1.1、从容器内拷贝文件到主机上

 

4.3.1.2、从宿主机拷贝文件到容器上

 

4.3.2、使用数据卷

 

4.3.2.1、数据卷概述

将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的!就好比,你安装一个mysql,结果你把容器删了,就相当于删库跑路了,这肯定不行吧!所以我们希望容器之间有可能可以共享数据,docker容器产生的数据,如果不通过docker commit 生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了!这样是行不通的!

为了能保存数据在docker中我们就可以使用卷!让数据挂载到我们本地!这样数据就不会因为容器删除而丢失了!

特点:

1、数据卷可在容器之间共享或重用数据

2、卷中的更改可以直接生效

3、数据卷中的更改不会包含在镜像的更新中

4、数据卷的生命周期一直持续到没有容器使用它为止

 

4.3.2.2、数据卷使用