我让jenkins在github上的容器和项目源代码中运行。
我需要在与jenkins相同的主机上运行容器中的项目,但不是作为docker中的docker,我希望将它们作为兄弟容器运行。
我的管道如下所示:
我现在要做的是使用jenkins容器中主机的docker套接字:
/var/run/docker.sock:/var/run/docker.sock
jenkins容器将源代码为/var/jenkins_home/workspace/BRANCH_NAME的卷装载到项目容器时出现问题:
volumes:
- ./servers/identity/app:/srv/app
我在项目容器中获得空文件夹“/srv/app”
我最好的猜测是docker试图从主机而不是从jenkins容器装载它。
所以问题是:如何显式设置从中装入卷的容器?
在主机和Jenkins之间共享sock是我的问题,因为“/var/Jenkins_home”很可能是Jenkins容器的卷。
我的解决方案是在一个systemd容器中安装docker,而不共享袜子。
docker run -d --name jenkins \
--restart=unless-stopped \
--privileged \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v jenkins-vol:/var/lib/jenkins \
--tmpfs /run \
--tmpfs /run/lock \
ubuntu:16.04 /sbin/init
然后在上面安装Jenkins,Docker和Docker Comment。
尝试:
docker run -d --volumes-from <ContainerID> <YourImage>
其中容器ID是要从其中获取数据的容器的ID。
您还可以通过以下方式创建卷:
docker volume create <volname>
并将其分配给两个容器
volumes:
- <volname>:/srv/app
我在使用Jenkins docker容器运行另一个容器时遇到了同样的问题。
这不是推荐的方式,解释在这里。如果你仍然需要使用这种方法,那么这个问题就不是问题了。
假设我们需要在Jenkins docker容器内运行另一个容器(ContainerA),docker管道插件将使用--volumes from
将Jenkins容器卷装载到ContainerA。
如果试图使用--volume
或-v
将Jenkins容器中的特定目录映射到ContainerA,则会出现意外行为。
这是因为--volumes
或-v
会尝试将主机中的目录映射到ContainerA,而不是从Jenkins容器中的目录映射。如果在主机中找不到目录,那么您将在ContainerA中得到一个空目录。
简而言之,我们不能将一个特定的目录从容器A映射到容器B,我们只能将整个卷从容器A挂载到容器B,并且不支持卷别名。
我有很多运行docker容器的测试。每个都有一个卷。 如何知道需要删除的卷名? 例如: 手动停止并删除容器后,卷仍然存在。 我不想删除所有卷,因为其中一些卷仍在使用中。
如何在高山容器中安装Docker并运行docker映像?我可以安装,但无法启动docker,并且在运行时获取“docker命令未找到错误”。
问题内容: 我在android项目中使用docker作为GitLab CI运行器。在测试运行结束时,将测试结果保存在build目录下的xml和html中: 我想访问这些文件,但是文档中没有提到如何像那样装载卷。 问题答案: 我建议不要从主机为您的CI装入卷。如果确实需要,则必须相应地配置运行器()。如果使用的是运行程序,则永远不会知道要在哪个系统上执行特定的构建。 我认为更好的解决方案是将测试结果
问题内容: 使用来自注册表的docker映像时,我经常需要查看映像容器创建的卷。 注意:我在Red Hat 7上使用Docker版本1.3.2。 例 来自Docker Registry 的官方映像在处为容器配置了一个卷。 在容器中显示体积最简洁的命令是什么? 问题答案: 使用来获取容器ID。 然后 例: 1号航站楼 2号航站楼 输出 显然是由于使用 Go 语言来实现docker命令工具。 在没有命
当使用来自注册中心的docker映像时,我经常需要看到映像的容器创建的卷。 在容器中显示卷的最简洁的命令是什么?
我在Windows上安装了支持WSL2的Docker Desktop。一切按预期进行。当我使用卷挂载运行容器时,我可以访问该文件夹中的所有windows文件。 不幸的是,docker中的windows共享的性能并不是很好,所以我尝试从wsl机器挂载一条路径。 但是使用的输出只是,而使用的输出是我的主目录。 有人能给我解释一下当我从Windows运行时,这个目录(物理上/在wsl/我的计算机中)在哪