docker 基础(2) 共享目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 基础(2) 共享目录相关的知识,希望对你有一定的参考价值。

参考技术A -v [本地文件夹地址]:[容器地址]
指定本地文件夹地址 /xxx/xxx/Desktop/Zi/mDataVolume:
指定容器中对应文件夹 /mDataVolumeContainer
通过指定两个文件夹可以实现容器和本地文件的共享

我们在容器中的 mDataVolumeContainer 目录下创建 index.html

然后通过 cat 命令查看 index.html

我们使用 docker inspect ubuntu 查看容器和本地文件夹的绑定关系 Binds

使用 exit 退出运行容器,然后看一看当再次启动容器看在容器对应目录中刚刚共享文件是否还存在。

这条命令 docker ps -l 是现实上一次运行的容器,也就是刚才我们关闭的容器。然后我们可以查看容器 ID。

然后使用 start 启动该镜像。

然后我们使用 attach 命令来进入镜像工作目录

在关闭该容器后,我们在本地 mDataVolume 创建又创建了 style.css ,我们在重新启动容器,发现这个 style.css 已经同步到容器的 mDataVolumeContainer 目录下。

如果在容器目录后面添加 :ro ,目录是只读,这样我们就无法在容器目录中对本地目录创建文件进行修改。

docker基础

docker是一个开源的应用容器引擎,使用go语言开发;

基于linux内核技术对应用程序进行隔离;
核心理念是将应用及依赖包打包到一个可移植的容器中;
可发布到任意linux发行版的docker引擎上;
使用沙箱机制运行程序:
(应用程序只能访问自己的目录,这个目录称为沙箱目录,而应用程序之间禁止数据的共享和访问; 沙箱机制是一种安全机制,设计原理就是只能允许自己的应用访问目录,而不允许其他的应用访问;
在iOS系统中,除了特有的应用可以通过使用特定的API共享数据(例如联系人),而其他的应用之间都不能共享数据。)

Docker体系结构:

技术分享图片

  1. Engine:处理docker客户端的请求,并进行相关的分发,下载镜像--image repository--;

  2. runC:挂载文件系统并启动容器;

  3. docker ps -q 显示运行容器的id;

Docker工作过程:

技术分享图片

虚拟机与容器的区别:

启动时间不同
虚拟机分钟级,docker秒级
轻量级
docker以M为单位,虚拟机以G为单位
性能
docker更快速
安全性:
不如虚拟机,一定程度上需要访问物理机内核;如何解决?
使用要求
结合实际环境;docker适合快速部署等

  • 场景一:节省项目环境部署时间
    1.单项目打包
    2.整套项目打包
    利用docker-compose
    3.新开源技术试用

  • 场景二:环境的一致性
    便于移植,多次利用部署,保持运行状态一致性;

  • 场景三:持续集成:
    docker+jenkins构建持续集成环境:
    技术分享图片

  • 场景四:微服务
    将业务架构拆分成微小的业务去组织整体业务;
    一个容器中只运行一个服务,容器之间隔离;

  • 场景五:弹性伸缩
    业务量增加或减少,资源整合比较方便,资源拓展等;

docker的版本及安装:

docker EE是企业版本,提供技术支持等;
docker CE是公共版本;
技术分享图片

以上是关于docker 基础(2) 共享目录的主要内容,如果未能解决你的问题,请参考以下文章

win7 docker 挂载共享目录

ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录

如何在opensuse中的同一台机器上的VM和docker之间共享目录?

docker数据共享与持久化

Python3 - Docker基础详解

Python3 - Docker基础详解