利用Docker搭建Samba服务


前述

能看到搜索到这篇文章想必你已经了解了什么是 Docker,什么是 Samba 了。如果你不了解这两样东西,那么我建议你在网上搜索一下,仔细了解下这两样比较实用的工具。

我就以我通俗的语言简述下这两样东西,Docker 是一种标准化的软件单元,说白了有了它,我们使用一个软件就像手机上使用 APP 一样,我们不用管这个软件怎么写的,以及运行这个软件需要什么环境啊。当我们手机需要某个软件的时候,我们都直接在应用商店里直接搜索下载某个软件,然后打开运行。Docker 跟这种道理差不多,如果我们需要某个软件,那么我们也直接从镜像仓库里直接拉取(手机上我们说下载应用,Docker 使用的是 pull 命令那么就该翻译成拉取,道理是一样的),手机上我们下载的称做安装包,Docker 中对应就是应该是镜像。手机上下载好软件包后安装的这个步骤对应 Docker 中就应该是创建容器的这个步骤了,创建容器的时候只需要你配置一些简单的参数。手机安装包在你的手机上能下载并安装,在别人的手机上也一样。Docker 也是如此,同一镜像都可以在同样的 CPU 架构下创建容器运行。只要你装了 Docker 就不在乎你用的什么系统了,就只有 CPU 架构的区分了。这样就大大为应用的部署提供了方便,而且通常来说一个容器是非常 轻量的,创建和删除它都非常的方便。这就是为什么要使用 Docker 来搭建 Samba 服务的原因了。

至于 Samba 就是适用与 LinuxUnix 的标准 Windows 互操作性程序套件。有了它我们就可以把任意文件在我们的 Windows 系统和 Linux 系统中任意的转移了。

启动容器

sudo docker run -it --name samba --restart always \
	--net host -p 139:139 -p 455:455  -v /home:/shared \
	-d dperson/samba -s "share;/shared;yes;no;yes" -n

我们来说下每个参数的含义:

sudo -> 使用 root 权限执行后续命令

docker -> docker 命令

run -> docker 命令的参数,用于启动容器

-i -> 让容器的标准保持打开

-t -> 为容器分配一个伪终端

–name -> 容器名, samba 这里就给该容器命名为 samba

–restart -> 重启参数,always 我们这里选的就是一直重启,只要是启动失败了它就会不断的重启,这里的作用主要是为了开机启动

–net -> 加入网络,host 就是说该容器加入到主机网络中

-p -> 端口映射,139、455 是 Samba 协议的端口

-v -> 文件映射, /home:/shared 就是把主机中的 /home 目录映射到 容器中的 /shared 目录中

-d -> 后台运行

dperson/samba 使用的镜像名,当我们的本地没有该镜像时,它会自动去网络仓库里搜索并拉取, 镜像可以是我们自己写的,也可以是别人写好的,我们这里所使用的就是别人已经写的了的

这上面的都是 Docker 命令中的参数,而镜像名后面跟的参数就是该镜像自己设定的参数了,有的镜像可能有,有的镜像可能也没有。这主要就要看这个镜像是怎么写的了

-s -> 设置共享目录, “share;/shared;yes;no;yes” 给共享的文件夹取名为 share,共享的是容器中的 shared 文件夹(前面的参数就已经把主机中的文件映射到这里了),可见,非只读,启用访客

关于更多的 dperson/samba 详细设置请见 dperson/samba


文章作者: Caffreyfans
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Caffreyfans !
 上一篇
译:UEFI 启动真正做了什么 译:UEFI 启动真正做了什么
该文译自 Adam Willianson 的 “UEFI boot:how does that actually work, then?” 又是 AdamW 文章时间了!如果你是想找简短而生动的文章,请到别处。 Kamil Paral 友好
2020-09-04
下一篇 
软件测试复习概要 软件测试复习概要
软件测试常用的概念,常用的分类,测试的目的,方法等 软件测试静态测试的概念,技术,分类,执行过程,涉及的活动,测试的对象等 软件测试的模型分类,个各模型的特点,适用场景,规划的阶段及其关系,表达的图形等 面向对象的软件测试概念,与
2019-01-05
  目录