Docker:挂载:DIND 上的权限被拒绝(您是 root 用户吗?)

Docker: mount: permission denied (are you root?) on DIND

所以,我正在尝试在 docker 图像中构建一个 docker 以用作 Gitlab CI 中的基础图像。图像构建得很好,但是当我尝试 运行 它时,尽管使用了特权标志,我还是收到以下错误:

挂载:权限被拒绝(您是 root 用户吗?)

运行命令如下:docker run gitlab-dind-base --privileged --name 'gitlab-test' -it -d

尽管已指定,但名称也未正确设置。

这是我的docker文件:

FROM docker:dind
RUN apk add curl
RUN apk add unzip
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
RUN apk update
RUN apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib wget
RUN apk update
RUN wget https://dot.net/v1/dotnet-install.sh -O $HOME/dotnet-install.sh
RUN chmod +x $HOME/dotnet-install.sh
RUN $HOME/dotnet-install.sh -c 5.0

我知道这是一个非常菜鸟的问题,但我一般是 docker 的新手并且主要使用 Docker Desktop 因为我还不太熟悉 CLI,谁能帮我指出哪里不对?

谢谢,

您可以尝试通过将 privileged 变量设置为 true 来更新以下文件 /etc/gitlab-runner/config.toml,就像这样:

concurrent = 1
check_interval = 0

[[runners]]
  name = "kms"
  url = "http://example.org/ci"
  token = "3234234234234"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "alpine:3.4"
    privileged = true
    disable_cache = false
    volumes = ["/cache"]
  [runners.cache]
    Insecure = false

我自己没有尝试过,但它可能是一个解决方案!