已安装 docker.sock 未存储登录信息
Mounted docker.sock login not stored
我正在使用 gitlab CI runner 构建一个 docker 图像,我想将它推送到我的私有注册表。
CI 运行器正在使用 docker:latest
,我将 /var/run/docker.sock
安装到容器中。
docker login -u myuser -p mypass registry.mydomain.com:5000
有效,它说登录成功,但是当我尝试在下一个命令中推送构建的图像时,我得到 unauthorized: authentication required
.
docker 在哪里存储登录到注册表?甚至可以推送到具有 docker 容器的自定义注册表,该容器安装到主机 docker.sock
.
重现步骤:
docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker sh
docker login -u username -p password registry.myhost.com:5000
docker build -t registry.myhost.com:5000/namespace/user:latest .
docker push registry.myhost.com:5000/namespace/user:latest
Docker 将登录令牌存储到注册表:
${HOME}/.docker/config.json
如果您 运行 将所有命令作为来自同一用户的单个脚本,则可能存在限制性代理或防火墙,或者私有注册表在某种程度上配置错误。
我正在使用 gitlab CI runner 构建一个 docker 图像,我想将它推送到我的私有注册表。
CI 运行器正在使用 docker:latest
,我将 /var/run/docker.sock
安装到容器中。
docker login -u myuser -p mypass registry.mydomain.com:5000
有效,它说登录成功,但是当我尝试在下一个命令中推送构建的图像时,我得到 unauthorized: authentication required
.
docker 在哪里存储登录到注册表?甚至可以推送到具有 docker 容器的自定义注册表,该容器安装到主机 docker.sock
.
重现步骤:
docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker sh
docker login -u username -p password registry.myhost.com:5000
docker build -t registry.myhost.com:5000/namespace/user:latest .
docker push registry.myhost.com:5000/namespace/user:latest
Docker 将登录令牌存储到注册表:
${HOME}/.docker/config.json
如果您 运行 将所有命令作为来自同一用户的单个脚本,则可能存在限制性代理或防火墙,或者私有注册表在某种程度上配置错误。