在Docker中实现Docker的三种方法
- 通过挂载docker.sock(DooD方法)运行docker
- dind 方法
- 使用Nestybox sysbox Docker运行时
1.什么是/var/run/docker.sock?
/var/run/docker.sock是默认的Unix套接字。套接字用于在同一主机上的进程之间进行通信。Docker守护程序默认情况下侦听docker.sock。如果您在运行Docker守护程序的主机上,则可以使用/ var/run/docker.sock管理容器
curl --unix-socket /var/run/docker.sock http://localhost/version
docker run -v /var/run/docker.sock:/var/run/docker.sock -ti docker-image
docker run -it --name docker-daemon --hostname daemon-test --network=host -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -e DOCKER_HOST="unix:///var/run/docker.sock" centos:7 /bin/bash
–network: 指定容器的网络, 启动容器默认使用bridge网络,这里直接使用主机的网络
-e:设置环境变量,这里直接指定使用docker.sock访问docker daemon
-v: 挂载文件,直接将主机的docker.sock挂载至容器内,共享docker daemon;挂载docker命令脚本至容器内,共享docker服务
https://kalasearch.cn/community/tutorials/how-to-share-data-between-docker-containers/
https://cloud.tencent.com/developer/article/1697053
https://cloud.tencent.com/developer/article/1697053
https://blog.csdn.net/qq_40601372/article/details/109528579