젠킨스 컨테이너가 Docker에서 실행 중이며 통합 테스트 등을 수행 할 때이 Jenkins 컨테이너를 사용하여 다른 Docker 컨테이너를 사용하려고합니다.Docker 컨테이너에서 Docker 호스트를 실행하는 방법은 무엇입니까?
그래서 컨테이너에 Docker를 설치하려고했으나 그렇지 않습니다. 나를 위해 그렇게 잘 일하는 것. 내 Dockerfile는 다음과 같은 :
FROM jenkins
MAINTAINER xxxx
# Switch user to root so that we can install apps
USER root
RUN apt-get update
# Install latest version of Docker
RUN apt-get install -y apt-transport-https
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
RUN sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
RUN apt-get update
RUN apt-get install -y lxc-docker
# Switch user back to Jenkins
USER jenkins
jenkins
이미지는 데비안 제시를 기반으로합니다. 내가 생성 된 이미지를 기반으로 컨테이너 내부의 bash 터미널을 시작하고, 예를 들어 수행 할 때
docker images
나는 다음과 같은 오류 메시지가 얻을 :
FATA[0000] Get http:///var/run/docker.sock/v1.16/images/json: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
나는 고정 표시기 서비스가 아니기 때문에이 될 수 있다고 의심을 시작되었습니다.
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
:이 라인에
/etc/init.d/docker
에서 오류를 추적 한
mount: permission denied
:
service docker start
이 나에게 다음과 같은 오류를 제공합니다 : 나는 서비스를 시작하려고 할 때 내 옆에 문제가 발생
내 질문은 다음과 같습니다.
- 실제로 컨테이너 내부에서 Docker 호스트를 시작하려면 어떻게해야합니까? 아니면 피해야 할 뭔가요?
- Mac 및 boot2docker를 실행하고 있다면해야 할 일이 있습니까?
- here과 같이 호스트 컴퓨터의 Docker에 연결해야할까요?
업데이트 : 사용자 루트 및 젠킨스로 컨테이너를 시도했습니다. sudo
이 설치되어 있지 않습니다.
젠킨스 컨테이너를 루트로 실행하고 Dockerfile의 끝에 CMD [ "wrapdocker"]를 포함시키지 않으면 작동합니다. 컨테이너를 시작한 후 수동으로 "wrapdocker"를 실행해야합니다. 이것은 아마도 Jenkins 이미지가 CMD [ "wrapdocker"]를 추가하면 작동하지 않는 EntryPoint (컨테이너가 시작되지 않음)를 설정하고있는 것일 수 있습니다. 그래서 비록 당신이 내 질문에 대답했지만 그것은 내가 원하는 방식으로 작동하지 않지만이 문제에 대한 또 다른 질문을 만드는 것이 최선이라고 가정합니다. – Johan