docker - Docker-套接字文件的卷映射是否是覆盖行为?

标签 docker jenkins docker-compose dockerfile docker-engine

以下是从here拍摄的 Jenkins 图像的代码片段:

# Install Docker Engine
RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
    echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | tee /etc/apt/sources.list.d/docker.list && \
    apt-get update -y && \
    apt-get purge lxc-docker* -y && \
    apt-get install docker-engine=${DOCKER_ENGINE:-1.10.2}-0~trusty -y && \
    usermod -aG docker jenkins && \
    usermod -aG users jenkins

在jenkins镜像中安装docker引擎。我的理解是,由于安装了docker引擎,var/run/docker.sock是使用Jenkins容器创建的。

以下是从here提取的卷映射语法:
volumes:
  - jenkins_home:/var/jenkins_home
  - /var/run/docker.sock:/var/run/docker.sock

在EC2主机上启动jenkins容器(上方)。

EC2主机也正在运行docker守护程序。

因此,EC2主机中正在运行docker守护程序。在Docker容器(Jenkins)中还运行着一个docker守护程序

在套接字文件的docker-compose(上方)中使用此语法(/var/run/docker.sock:/var/run/docker.sock),

Jenkins容器中的docker守护程序是否会使用EC2主机中存在的套接字文件覆盖其自己的套接字文件?如果是,这意味着什么?

最佳答案

docs:

Docker-engine is a client-server application



请注意,在安装docker-engine时,将安装docker-daemon(服务器)和dockercli(客户端)。

这意味着,如果未运行docker守护程序,您仍然可以运行docker cli命令:
docker info
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

您共享的Jenkins镜像没有运行docker引擎的说明。所以我认为它不在容器内运行。
/var/run/docker.sock:/var/run/docker.sock卷将Docker主机的Docker引擎套接字映射到容器。

因此docker cli命令在容器内运行,以控制在docker主机上运行的docker-engine。

如果您从容器化的Jenkins中对主机执行CI / CD,则这很有意义。

Jenkins管道可以使用docker,docker-compose和docker swarm命令来运行测试,构建 Artifact 和部署新版本的应用程序。

关于docker - Docker-套接字文件的卷映射是否是覆盖行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58667897/

相关文章:

jenkins - 将项目从 gitlab 存储库克隆到 Jenkins 时出现问题?

azure - Docker-Compose/Kubernetes Yaml 文件上的 CentOS 镜像问题

docker - 错误 : volumes. dbdata 必须是映射或 null

java - 通过 docker-compose 将 JAVA_OPTS 传递给 spring boot 应用程序

node.js - 使用 Jenkins 运行 Grunt.js

jenkins - 如何在 Jenkins 管道 View 中显示自定义运行次数

docker - 从另一个正在运行的容器重新启动 docker 容器

azure - 微服务架构中的数据库位置

windows - Docker 快速启动终端 : exit status 255

n 秒内的 Docker 统计信息