问题:在docker容器中的jenkins无法执行docker命令。
解决:
- 编写Dockerfile:
FROM 192.168.0.150:9000/pension/jenkins:2.251
USER root
#清除了基础镜像设置的源,切换成阿里云源
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
From指jenkins镜像,本例中使用的是私服镜像,可以替换成
FROM docker.io/jenkins
构建镜像:
$ docker build -t jenkins:v1 .
2. 启动容器:
$ docker run -d --names jenkins -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins:v1
进入容器:
$ docker exec -it jenkins /bin/bash
执行docker info,就可以正常执行了。