我通过以下步骤解决了这个问题。
问题:
root@81d156e97b9c:/# docker -v
docker: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by docker)
docker: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by docker)
首先
- 从Docker文件构建镜像:
这是用于记录的Docker文件内容
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates curl gnupg2 \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
USER jenkins
使用这个命令
docker build -t custom-jenkins-docker:v1 .
在我的情况下,图像大小为1.04Gb(供参考)
然后运行以下命令来创建该图像的容器
docker run -p 8080:8080 -p 50000:50000 -d -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock custom-jenkins-docker:v1
了解容器ID
docker ps
在bash shell中以root用户身份进入exec模式。
docker exec -u 0 -it 557c4a24ff3f bash
现在您可以使用 Docker 命令了
但是如果我想以普通用户身份访问 Docker 呢?
那么我们需要将主机上的 docker.sock 文件权限更改为 666,而不是 660
sudo chmod 666 /var/run/docker.sock
在容器内运行此命令
docker exec -it 557c4a24ff3f bash
现在您可以作为普通用户使用Docker
docker run -it -u root /bin/bash
命令并登录到容器中,尝试检查 Docker 版本时,结果是GLIBC_2.32' not found (required by docker) docker: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by docker)
。我的构建图片已附上。 - Sadok Bouzrati-v $(which docker):/usr/bin/docker
这个命令不太可靠。请在您的 Jenkins Dockerfile 中安装 Docker CLI 工具。 - David Maze