0

docker をセットアップしてコンテナーを作成しましたが、IP サブネットで起動したいというLAN問題docker0docker -d -b docker0あります。statichttpdmysqld

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

4

1 に答える 1

1

Docker コンテナは完全な仮想マシンではありません。

ネットワーク構成は、ビルドではなく、ブート時に行われます。pipeworkなどの外部ツールがなければ、静的 IP を割り当てることはできません。ネットワーキングのドキュメントを読むことをお勧めします。静的 IP は「Docker 方式」ではありません。

また、コンテナーは通常、本格的な init システムを使用しません。複数のサービスを開始する必要がある場合は、supervisordまたはrunitが一般的な代替手段です。

特権フラグは、ビルド プロセス中ではなく、docker の実行時に指定されます。

于 2014-12-23T02:34:05.233 に答える