docker - Docker客户端(容器内)可以使用UNIX套接字与EC2上的Docker守护进程进行通信吗?

标签 docker jenkins amazon-ec2 docker-compose

作为Jenkins docker 形象的一部分,

应该安装docker client(only),

可以与安装在基础EC2实例上的docker守护进程进行通讯。

UNIX套接字,我的意思是socket(AF_UNIX,,)
背景

按照说明,给定here

我认为没有必要使用ink jenkins镜像安装docker daemon,

因为作者正在使用UNIX套接字与EC2实例中运行的基础docker守护程序进行对话,如here所示。

我的理解是,仅在jenkins镜像中安装docker客户端安装程序,就可以使用UNIX socket(/var/run/docker.sock)与在EC2实例上运行的docker守护进程进行对话。

1)

在jenkins镜像中运行的docker客户端可以与在基础EC2实例中运行的docker守护进程通信吗?与下面的映射...

volumes:
    - /var/run/docker.sock:/var/run/docker.sock

2)

如何仅在下面的 Jenkins 镜像中安装Docker客户端?
FROM jenkins:1.642.1


# Suppress apt installation warnings
ENV DEBIAN_FRONTEND=noninteractive

# Official Jenkins image does not include sudo, change to root user
USER root

# Used to set the docker group ID
# Set to 497 by default, which is the groupID used by AWS Linux ECS instance
ARG DOCKER_GID=497

# Create Docker Group with GID
# Set default value of 497 if DOCKER_GID set to blank string by Docker compose
RUN groupadd -g ${DOCKER_GID:-497} docker

最佳答案

要在Jenkins中使用Docker,Jenkins必须有权访问docker.sock

您在这里建议的是通过在jenkins容器内安装docker的docker in docker方法,但实际上这不是必需的。您只需要一个有效的docker守护程序,因此,通常的方法是将/var/run/docker.sock从主机映射到容器。

看看这个惊人的帖子https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

关于docker - Docker客户端(容器内)可以使用UNIX套接字与EC2上的Docker守护进程进行通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58652650/

相关文章:

unit-testing - 在 Jenkins 中构建子项目时单元测试结果未显示在 Sonar 中

Jenkins 错误 : MSB1008: Only one project can be specified

node.js - AWS 负载均衡器安全组

mysql - 更改为 utf8mb4 后查询速度变慢

由于 docker 容器中的 "database is locked",swift 构建失败?

python - 如何使用docker运行django项目

mysql - 将docker中的WSO2 apim连接到本地机器中的mysql时在url中使用useSSL = true时出现错误

performance - 为什么 docker build 这么慢

jenkins - 没有 pom.xml 的 Jenkins 的加特林插件

amazon-web-services - 如何在 Amazon RDS 上设置具有系统管理员权限的用户