因为有业务需求,需要在docker的容器下连接iscsi磁盘。
部署docker镜像,安装
open-iscsi
:12test@testpc$ docker pull ubuntu:14.04test@testpc$ docker run ubuntu:14.04 apt-get install -y open-iscsi进入容器,运行
iscsiadm
:1234root@aaaa# iscsiadm -m discovery -t st -p 192.168.1.10iscsiadm: can not connect to iSCSI daemon (111)!iscsiadm: can not connect to iSCSI daemon (111)!iscsiadm: Cann perform discovery. connect to iSCSI daemon (111)!
初步排查原因,可能是因为找不到iscsi的驱动。该装装,该删删,结果依旧不行。
有没有可能是docker本身的默认配置或策略问题?想到这,果然在某个docker官方文档中找到了一个参数privileged
:1234test@testpc$ docker help run ...--privileged=false Give extended privileges to this container...
docker容器内的root,默认情况下只是外部的一个普通用户权限,并不拥有root权限。只有使用了该参数,容器内的root才拥有真正的root权限。
尝试一下:
使用
privileged
创建一个新的容器:1test@testpc$ docker run --privileged --name test -t -i ubuntu:14.04 /bin/bash进入容器,运行
iscsiadm
:12root@aaaa# iscsiadm -m discovery -t st -p 192.168.1.10192.168.1.10:3260,1 iqn.1997-05.com.test:iscsi1
完美解决!END