安装主机目录-v选项时。 ENTRYPOINT启动时是否可以使用坐骑?

时间:2016-04-18 18:22:19

标签: bash docker dockerfile

我有一个Dockerfile如下

FROM rajenata/ovs
MAINTAINER Rajesh Nataraja <...>
COPY initovs /sbin/

ENTRYPOINT ["/sbin/initovs"]
CMD ["--help"

然后我执行

docker run -d rajenata/ovs:2 --net=host --privileged -v /etc/openvswitch:/etc/openvswitch

但是initovs脚本

#!/bin/bash

if [ -d "/etc/openvswitch" ]; then
  if [ -f "/etc/openvswitch/conf.db" ]; then
     echo "DB Exists No Need to Create"
  else
     ovsdb-tool create  /etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema
  fi
else
  echo "Open V Switch not mounted from Host"
  exit -1
fi

返回exit -1,表示挂载不可用。

ENTRYPOINT是否有可能在DOCKER完成装载之前执行?

1 个答案:

答案 0 :(得分:-1)

我猜你是和普通用户一起运行的。您可能无法访问/ etc / openvswitch(即使用户是docker组的一部分)。理想情况下,在ENTRYPOINT之前可以使用挂载。即使您创建一个仅回显“hello world”的脚本并将其挂载到容器中的某个位置并在入口点上运行它,它也会打印“hello world”。所以,对我而言,似乎是许可问题。您可以登录容器并查看该文件是否存在。

$ docker run -it rajenata/ovs:2 --net=host --privileged -v /etc/openvswitch:/etc/openvswitch /bin/bash
container-name# ls /etc/openvswitch

如果您尝试执行与在入口点中执行的操作相同的操作,请尝试查看您获得的错误。