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
其中:
*
:允许所有的网段访问,也可以使用具体的IPrw
:挂接此目录的客户端对该共享目录具有读写权限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文件: