gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:51:26 25 4
gpt4 key购买 nike

以下是从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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com