[英]Operation not permitted systemctl with docker + systemctl
Docker文件
FROM centos:7
ENV container docker
VOLUME ["/sys/fs/cgroup"]
RUN yum -y update
RUN yum install -y httpd
RUN systemctl start httpd.service
ADD . /code
WORKDIR /code
docker-compose.yml
version: '2'
services:
web:
privileged: true
build: .
ports:
- "80:80"
volumes:
- .:/code
命令
docker-compose build
錯誤 :
步驟6:運行systemctl start httpd.service --->在5989c6576ac9中運行?[91m無法獲得D-Bus連接:不允許操作?[0m?[31mERROR?] [0m:服務'web'生成失敗:命令' / bin / sh -c syste mctl start httpd.service'返回了非零代碼:1
Obs :在Windows 7上運行:(
有小費嗎?
如centos docker映像存儲庫中所述 ,默認情況下Systemd不處於活動狀態。 為了使用systemd,您將需要包含類似於以下示例Dockerfile的文本:
FROM centos:7
MAINTAINER "you" <your@email.here>
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
該Dockerfile刪除了許多可能導致問題的單位文件。 從這里,您就可以構建基礎映像了。
$ docker build --rm -t local/c7-systemd .
為了使用上面創建的啟用了systemd的基本容器,您需要將Dockerfile更改為:
FROM local/c7-systemd
ENV container docker
VOLUME ["/sys/fs/cgroup"]
RUN yum -y update
RUN yum install -y httpd
RUN systemctl start httpd.service
ADD . /code
WORKDIR /code
對於同一問題,我創建了一個docker-systemctl-replacement ,它將執行“ systemctl啟動httpd.service”將要執行的步驟...,但不需要運行SystemD。 只需說“ systemctl.py啟動httpd.service”,看看是否可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.