Docker设置ipaddress并启动服务

我已经设置docker和创build容器,但问题是我想在我的LAN IP子网上,我已configurationdocker0已桥接,并启动docker -d -b docker0 ,现在我想启动与static IP容器,并启动httpdmysqld服务。

Dockerfile:

 FROM centos/centos6-latest RUN /sbin/ifconfig eth0 192.168.1.150 RUN /sbin/route add default gw 192.168.1.1 RUN /etc/init.d/mysqld start RUN /etc/init.d/httpd start 

错误:

 [root@server ~]# docker build -t centos/centos6-latest . Sending build context to Docker daemon 146.8 MB Sending build context to Docker daemon Step 0 : FROM centos/centos6-latest ---> 123729f9961b Step 1 : RUN /sbin/ifconfig eth0 192.168.1.150 ---> Running in c722910e1997 SIOCSIFADDR: Permission denied SIOCSIFFLAGS: Permission denied SIOCSIFNETMASK: Permission denied SIOCSIFBROADCAST: Permission denied 2014/12/23 07:03:38 The command [/bin/sh -c /sbin/ifconfig eth0 192.168.1.150] returned a non-zero code: 255 

我知道你必须启动容器与 – --privileged模式,但我不知道如何设置与build选项

Docker容器不是完整的虚拟机。

networkingconfiguration在启动时完成,而不是在生成。 如果没有外部工具(如pipe道),则不能分配静态IP。 我会build议阅读networking文档 。 静态IP不是“docker方式”。

另外,容器通常不使用完整的初始化系统。 如果你必须启动多个服务, supervisord或runit是常见的select。

特权标志在docker run中指定,而不是在构build过程中指定。