我通过 docker run - 在 ubuntu 系统上的虚拟机上构建了 jenkins 服务。现在,如果我想通过jenkins和harbor配置自动创建镜像,我需要在jenkins容器中安装docker,它用于执行docker build命令。
在我的 ubuntu 主机上,我通过 snap install docker 安装了 docker。哪个 docker 可以看到 docker 安装在 /snap/bin/docker 中。所以我在运行 docker run 时使用了以下命令:
sudo docker run -d -p 80:8080 -p 50000:50000
-v /home/my/jenkins_home:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
-v /snap/bin/docker:/usr/bin/docker
-v /etc/docker/daemon.json:/etc/docker/daemon.json
詹金斯/詹金斯:lts
(这里尝试了/usr/bin/docker:/usr/bin/docker,提示找不到/usr/bin/docker) 按照上面的步骤创建了jenkins容器后,通过docker exec *** -it bash进入容器后运行docker命令,却发现居然执行了snap命令。
在故障排除过程中,我通过 ll /snap/bin/docker 命令在 ubuntu 主机上发现了连接配置:
$ ll /snap/bin/docker lrwxrwxrwx 1 root root 3月27日13日08:51 /snap/bin/docker -> /usr/bin/snap*
我看到您正在尝试在容器内运行 docker 命令。 docker 命令应该在主机上执行,而不是在容器中执行。