由于挂载nfs共享磁盘导致docker启动失败

由于挂载nfs共享磁盘导致docker启动失败

前言

为了部署应用方便,在部署的时候关闭了iptables防火墙,应用程序正常运行后,为了安全开启了iptables防火墙,由此导致的docker启动失败,因为docker启动的时候需要挂载nfs共享存储,而防火墙拦阻了共享存储的网络导致nfs挂载失败,docker启动无法使用nfs的共享目录。

一、相关的主机信息

主机应用
app1–97.9docker+nfs挂载端
db1–97.55mysql+nfs服务端

二、相关报错信息及操作步骤

1.排查问题

docker run -d --restart=always --name minio
-p 9000:9000 -p 9001:9001
-e MINIO_ROOT_USER=test
-e MINIO_ROOT_PASSWORD=123456
-v /data/minio/data:/data
-v /data/minio/config:/root/.minio
minio/minio
server /data --console-address “:9001” --address “:9000”

挂载的时候报错无法挂载/data目录,因为这个目录是nfs共享目录;

还有个问题,是查看磁盘空间的时候卡死,不动,
执行的命令是: df -h
df -h和分区挂载有关,先卸载挂载挂载的目录:
umount -l /data/

2.解决方法

输入命令查看nfs服务端是否可以挂载
showmount -e 192.168.97.55
无法挂载,原因是被防火墙拦截了;
服务端查看nfs对应的端口:
[root@db1 ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 58046 status
100024 1 tcp 40718 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 51970 nlockmgr
100021 3 udp 51970 nlockmgr
100021 4 udp 51970 nlockmgr
100021 1 tcp 37297 nlockmgr
100021 3 tcp 37297 nlockmgr
100021 4 tcp 37297 nlockmgr

查出来的端口都要做放行,

配置防火墙:
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 58046 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 40718 -j ACCEPT

iptables -I INPUT -m state --state NEW -m udp -p udp --dport 51970 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 37297 -j ACCEPT

iptables -I INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT

iptables -I INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 20048 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 20048 -j ACCEPT

保存配置:
service iptables save

查看防火墙策略带编号:
iptables -nL --line-number
删除配置
iptables -D INPUT “序号”

再次去挂载:
[root@ywbd-app1 ~]# showmount -e 192.168.97.55
Export list for 192.168.97.55:
/data *
输出以上信息表示可以正常挂载了;

挂载nfs:
mount -t nfs 192.168.97.55:/data/ /data/

再次执行启动docker就可以正常启动了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值