我正在运行一个Jenkins集群,其中在Master和Slave中,它们都作为Docker容器运行。
主机是在MacOS上运行的最新的boot2docker VM。
为了使Jenkins能够使用Docker执行部署,我将docker.sock和docker客户端从主机安装到Jenkins容器,如下所示:
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v $HOST_JENKINS_DATA_DIRECTORY/jenkins_data:/var/jenkins_home -v $HOST_SSH_KEYS_DIRECTORY/.ssh/:/var/jenkins_home/.ssh/ -p 8080:8080 jenkins
在将卷装载到Jenkins容器中运行的Docker容器时,我遇到了问题。例如,如果需要在Jenkins容器内运行另一个Container,请执行以下操作:
sudo docker run -v $JENKINS_CONTAINER/deploy.json:/root/deploy.json $CONTAINER_REPO/$CONTAINER_IMAGE
上面的代码运行容器,但是文件“ deploy.json”不是作为文件挂载,而是作为“目录”挂载。即使将目录安装为卷,也无法查看结果容器中的文件。
这是一个问题吗,因为在Docker情况下由于Docker而产生文件权限?
Docker容器中的Docker容器使用父HOST的Docker守护程序,因此,在“ docker-in-
docker”案例中安装的任何卷仍从HOST而非容器中引用。
因此,在主机中从Jenkins容器安装的实际路径“不存在”。因此,将在空的“ docker-in-
docker”容器中创建一个新目录。将目录装载到Container内的新Docker容器时,同样适用。
我错过了非常基本和显而易见的东西,但是我一输入问题就意识到了。
问题内容: 我最近创建了一个在Windows上的boot2docker上运行的mongodb docker实例。 不幸的是,在尝试kitematic的过程中,我意外地从mongo容器中删除了该卷,并且无法再访问我的数据。 mongo实例似乎创建了一个新卷,而旧卷现在仍悬空(孤立)并且未安装在任何容器中。 有什么办法可以恢复吗? 问题答案: 感谢您的答复,它使我处于正确的轨道,我设法使用以下命令启动
我尝试以配置yaml文件作为参数运行opentelemetry docker映像:
我正在运行一个Jenkins集群,其中主集群和从集群都作为Docker容器运行。 主机是在MacOS上运行的最新boot2docker VM。 为了让Jenkins能够使用Docker执行部署,我安装了Docker。从主机到Jenkins容器的sock和docker客户端,如下所示:- 我在将卷安装到在Jenkins容器内运行的Docker容器时面临问题。例如,如果我需要在Jenkins容器中运行
问题内容: 我刚刚检查了/ var / lib / docker / volumes文件夹,发现该文件夹正以名为Docker UUID的文件夹爆炸,每个文件夹都包含一个config.json文件,其内容与 哪里 是指向主机上的文件夹的路径,该主机已通过-v开关挂载到Docker容器上。我有这样的文件夹可以追溯到我对Docker进行实验的开始,即大约3周前。 有问题的容器很久以前就已停止并且dock
问题内容: 我正在使用Docker,并且我想挂载一个变化很大的动态文件夹(因此我不必为每次执行都制作一个Docker映像,这会太昂贵),但是我希望该文件夹是只读的。将文件夹所有者更改为其他人可行。但是,需要访问权限,而我不希望将其公开给应用程序。 当我使用flag进行挂载时,它将提供我提供的任何用户名,我在docker映像内创建了一个非root用户,但是,该卷中的所有文件都以运行docker的用户
我在一台Macbook Pro笔记本电脑上运行docker-machine(0.5.0)和docker-compose(1.5.0)来启动我的容器。 这意味着我正在使用docker-machine创建我的virtualbox boot2docker驱动的主机,它将运行我的docker守护进程并托管我的所有容器。 我想我遗漏了主机和卷概念的一些关键内容,因为它们引用了Docker和文档。 这是我的d