相关疑难解决方法(0)

管理Docker共享卷权限的(最佳)方法是什么?

我一直在玩Docker一段时间,并在处理持久数据时继续寻找相同的问题.

创建我Dockerfile暴露量或使用--volumes-from安装我的容器内的主文件夹.

我应该对主机上的共享卷应用哪些权限?

我可以想到两个选择:

  • 到目前为止,我已经给了每个人读/写访问权限,所以我可以从Docker容器写入该文件夹.

  • 将用户从主机映射到容器,这样我就可以分配更细化的权限.不确定这是可能的,但没有找到太多关于它.到目前为止,我所能做的就是以某个用户身份运行容器:docker run -i -t -user="myuser" postgres但是此用户的UID与我的主机不同myuser,因此权限不起作用.此外,我不确定映射用户是否会带来一些安全风险.

还有其他选择吗?

你们这些人/女士如何应对这个问题?

docker

328
推荐指数
9
解决办法
23万
查看次数

如何修复docker:获得权限被拒绝的问题

我在我的机器上安装了Docker,我有Ubuntu操作系统.比我安装了docker,当我跑

sudo docker run hello-world
Run Code Online (Sandbox Code Playgroud)

一切都没问题,但是我想隐藏这个词sudo以使命令更加简短.

如果我没有单词写命令 sudo

docker run hello-world
Run Code Online (Sandbox Code Playgroud)

这显示如下:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

当我尝试制作时,情况也是如此

docker-compose up
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

docker docker-compose

168
推荐指数
13
解决办法
13万
查看次数

从docker里面运行docker是否可以?

我在Docker容器中运行Jenkins.我想知道Jenkins容器是否也可以成为Docker主机?我正在考虑的是从Jenkins内部为每个集成测试构建启动一个新的docker容器(以启动数据库,消息代理等).因此,在完成集成测试后应关闭容器.有没有理由避免以这种方式从另一个docker容器内运行docker容器?

jenkins docker docker-dind

156
推荐指数
4
解决办法
7万
查看次数

minikube - 为什么“docker”驱动程序不应与 root 权限一起使用

当尝试使用 docker 驱动程序启动 minikube 时,作为 root 用户,我得到:

$ minikube start --driver=docker
* minikube v1.16.0 on Ubuntu 18.04
* Using the docker driver based on user configuration
* The "docker" driver should not be used with root privileges.
* If you are running minikube within a VM, consider using --driver=none:
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/

X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
Run Code Online (Sandbox Code Playgroud)

root用户使用docker driver有什么问题?

docker minikube

17
推荐指数
1
解决办法
2万
查看次数

尝试在执行docker stop时连接到Docker守护程序套接字时获得权限被拒绝

我的docker上运行了3个容器,我需要使用以下命令停止所有容器:

sudo docker stop $(docker ps -q)
Run Code Online (Sandbox Code Playgroud)

当运行命令时我得到了这条消息:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.32/containers/json: dial unix /var/run/docker.sock: connect: permission denied
See 'docker stop --help'.
Usage:  docker stop [OPTIONS] CONTAINER [CONTAINER...]
Stop one or more running containers
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,消息显示的案例不适用于我的环境.我正在使用Ubuntu 16.04 LTS和Docker版本17.09.0-ce,构建afdb6d4

这条消息是什么意思?

sockets ubuntu docker

10
推荐指数
3
解决办法
6673
查看次数

如何找到在Jenkins"Docker插件"中使用的"Docker主机URI"?

有没有我们可以运行的命令并找到"Doc​​ker Host URI"?我找到了一些相关的问题,但没有得到它.

docker jenkins-docker

7
推荐指数
4
解决办法
9097
查看次数

在Macbook中运行Jenkins管道时尝试连接到Docker守护程序时权限被拒绝

我试图在我的macbook中运行Jenkins管道工作.我还有本地运行的docker实例.最初我在运行Jenkins Job时遇到了" docker command not found "错误.我通过添加符号链接修复错误" ln -f -s /Applications/Docker.app/Contents/Resources/bin/*/usr/local/bin "

我还应用了这两个更改,以便jenkins用户可以访问docker目录

  1. chmod -R 777 /Users/myUserName/Library/Containers/com.docker.docker/
  2. chmod -R 777 /Users/myUserName/Library/Containers/com.docker.helper/

我收到以下错误:

在尝试连接到unix上的Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/openjdk:8/json:拨打unix /var/run/docker.sock:connect:权限被拒绝[Pipeline] sh [test]运行shell脚本+ docker pull openjdk:8警告:无法从守护进程获取默认注册表端点(尝试拒绝权限被拒绝)在unix:///var/run/docker.sock连接到Docker守护程序套接字:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.27/info:拨打unix /var/run/docker.sock :connect:权限被拒绝).使用系统默认值:https ://index.docker.io/v1/尝试连接到unix上的Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:发布 http://%2Fvar% 2Frun%2Fdocker.sock/v1.27/images/create?fromImage = openjdk&tag = 8:拨打unix /var/run/docker.sock:connect:权限被拒绝[Pipeline]} [Pipeline] // node [Pipeline] End of Pipeline ERROR:脚本返回退出代码1完成:FAILURE

macos jenkins docker jenkins-pipeline

6
推荐指数
1
解决办法
5922
查看次数

如何使用Docker和Pipelines缓存本地Maven存储库?

我想在Docker容器中运行我的Maven构建。我不想在每次构建时都上载所有依赖关系,因此我尝试安装主机的本地Maven存储库,如将Docker与管道一起使用中所述

缓存容器数据

[...]

管道支持添加传递给Docker的自定义参数,从而允许用户指定要安装的自定义Docker卷,可用于在两次管道运行之间在代理上缓存数据。下面的示例将利用maven容器在管道运行之间缓存〜/ .m2,从而避免为管道的后续运行重新下载依赖项。

pipeline {
    agent {
        docker {
            image 'maven:3-alpine'
            args '-v $HOME/.m2:/root/.m2'
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn -B'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

pipeline {
    agent {
        docker { 
            image 'maven:3-alpine' 
            args '-v /home/jenkins/.m2:/root/.m2'
        }    
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn -B clean verify'
            }
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

日志记录

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on jenkins-docker in …
Run Code Online (Sandbox Code Playgroud)

maven jenkins docker jenkins-pipeline

6
推荐指数
2
解决办法
1787
查看次数

准备失败:尝试连接到位于 unix:///var/run/docker.sock 的 Docker 守护程序套接字时权限被拒绝

尝试将 gitlab 中的项目转换为 docker 镜像。gitlab 是自托管的。这是我得到的错误:

Running with gitlab-runner 13.12.0 (7a6612da)
on test -KnwQXuT
Preparing the "docker" executor
ERROR: Failed to remove network for build
ERROR: Preparation failed: Got permission denied while trying to connect to the Docker daemon 
socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.25/info: dial 
unix /var/run/docker.sock: connect: permission denied (docker.go:858:0s)
Run Code Online (Sandbox Code Playgroud)

我添加了一个跑步者,注册了它,使用 docker 模板创建了一个 gitlab-ci.yml ,我没有修改它。作为解决方案,我chmod 666 /var/run/docker.sock在添加跑步者之前和之后尝试过,但它不起作用。我还在运行和注册 docker runner 之前添加了 sudo 但仍然没有成功。我找到了另一个选项将我的 docker 用户添加到 docker 组,但我的所有用户都在 docker 组中。docker runner 作为 docker 镜像运行。我不知道该怎么办...请帮忙。我尝试了大约 10 天,但没有成功...提前致谢

gitlab docker gitlab-ci-runner docker-daemon cicd

6
推荐指数
2
解决办法
8768
查看次数

Jenkins Pipeline-无法连接到Docker守护程序

我正在按照本教程在docker中使用jenkins构建一个hello-world Maven Java应用程序:https ://jenkins.io/doc/tutorials/building-a-java-app-with-maven/#fork-and-clone- github上的sample-repository

这是我的应用程序(只是本教程的分支):simple-java-maven-app

与我在管道选项(存储库URL)中使用远程存储库(Github)而不是本地存储库(或主机存储库)相比,存在一个小的差异。我推送了Jenkinsfile进行回购,然后使用Pipeline构建了hello-world应用。

// Jenkinsfile for Pipeline
pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在下面收到此错误,找不到任何解决方案。我正在使用Windows 10。

docker pull maven:3-alpine
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/
Cannot connect to the …
Run Code Online (Sandbox Code Playgroud)

maven jenkins docker windows-10 jenkins-pipeline

2
推荐指数
1
解决办法
1698
查看次数