2014-12-23 7 views
0

내가 설정 고정 표시기가 컨테이너를 만들 수 있지만, 문제는, 내가 지금은 IP static으로 컨테이너를 시작하려면, docker -d -b docker0와 브리지 시작했다 docker0를 구성한 난 내 LAN IP 서브넷에 제기 할이며, httpdmysqld 서비스를 시작하십시오.도커는 여기서 ipaddress을 설정하고 서비스를 시작

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 

오류 :

[[email protected] ~]# 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 옵션을 설정하는 방법을 모르겠어요

답변

1

Docker 컨테이너는 완전한 가상 시스템이 아닙니다.

네트워크 구성은 빌드가 아닌 부팅시 수행됩니다. pipework과 같은 외부 도구없이 정적 IP를 지정할 수 없습니다. 나는 networking docs을 읽을 것을 권합니다. 고정 IP는 '도커 방식'이 아닙니다.

또한 컨테이너는 일반적으로 완전 분사 시스템을 사용하지 않습니다. 여러 서비스를 시작해야하는 경우 supervisord 또는 runit이 일반적인 대안입니다.

권한있는 플래그는 빌드 프로세스 중에이 아니라 도커 실행시 지정됩니다.