docker NFS 文件共享和传输

::: danegr 注意 前半部分是容器打包到另一台服务器并且部署

后半部分是重头戏:NFS容器文件共享~

:::

容器迁移到另一台服务器

展开查看过程

1.找到要打包的镜像

jaegertracing/all-in-one                   1.16      fea586ade9d0   22 months ago   50.5MB

2.打包成文件

docker save -o cc.tar jaegertracing/all-in-one:1.16

3.ls 查看刚才以打包的文件

[root@master3 ~]# ls
anaconda-ks.cfg  cc.tar(已打包的)  kubeadm-config.yaml

4.导入到需要镜像的服务器

scp cc.tar root@192.168.200.130:

5.解压镜像文件

[root@node1 ~]# docker load < cc.tar 
8f1b3d3ad470: Loading layer [==================================================>]  217.6kB/217.6kB
44874aec6671: Loading layer [==================================================>]  45.46MB/45.46MB
68b1a9835e66: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image: jaegertracing/all-in-one:1.20

6.查看刚才导出的镜像

[root@node1 ~]# docker images 
REPOSITORY              
registry.aliyuncs.com/google_containers/pause                          3.2       80d28bedfe5d   20 months ago   683kB
registry.aliyuncs.com/google_containers/coredns                        1.6.7     67da37a9a360   21 months ago   43.8MB
jaegertracing/all-in-one             # 已解压的镜像                      1.16      fea586ade9d0   22 months ago   50.5MB             
registry.aliyuncs.com/google_containers/etcd                           3.4.3-0   303ce5db0e90   2 years ago     288MB

Docker 基于 NFS 实现容器文件共享

什么是 NFS?

NFS(network file system)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间的共享资源。

我们在docker 和 kubernetes 会经常有需求

安装

服务器准备:

192.168.71.131  cubnode01
192.168.71.132  cubnode02

centos:

yum insatll -y nfs-utils rpcbind

ubuntu:

apt-get -y install nfs-kernel-server

编辑/etc/exports下的配置文件:

cat >> /etc/exports <<- 'EOF'
/share 192.168.71.0/24(rw,no_root_squash,sync)
EOF; cat /etc/exports

其中:

  • *:允许所有的网段访问,也可以使用具体的IP
  • rw:挂接此目录的客户端对该共享目录具有读写权限
  • sync:资料同步写入内存和硬盘
  • no_root_squash:root用户具有对根目录的完全管理访问权限。
  • no_subtree_check:不检查父目录的权限

重启服务,会自动映射端口:

sudo /etc/init.d/rpcbind restart

重启nfs服务:

sudo /etc/init.d/nfs-kernel-server restart

验证:

exportfs

创建共享文件夹

如配置文件中所述,在 /tmp/cubxxw/ 路径下创建共享文件夹share_folder,在其中写一个test.txt文件: