Docker设置ipaddress并启动服务
我已经设置docker和创build容器,但问题是我想在我的LAN
IP子网上,我已configurationdocker0
已桥接,并启动docker -d -b docker0
,现在我想启动与static
IP容器,并启动httpd
和mysqld
服务。
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过程中指定。