При создании контейнера Jenkins Docker очень полезно иметь возможность подключаться к демону Docker.Таким образом, я могу запускать команды Docker внутри контейнера Jenkins.
Например, после запуска контейнера Jenkins Docker я хотел бы «docker exec -it container-id bash» и запустить «docker ps».
В Linux вы можете использовать bind-mounts в /var/run/docker.sock.В Windows это кажется невозможным.Решение заключается в использовании «именованных каналов».Итак, в моем файле docker-compose.yml я попытался создать именованный канал.
version: '2'
services:
jenkins:
image: jenkins-docker
build:
context: ./
dockerfile: Dockerfile_docker
ports:
- "8080:8080"
- "50000:50000"
networks:
- jenkins
volumes:
- jenkins_home:/var/jenkins_home
- \\.\pipe\docker_engine:\\.\pipe\docker_engine
# - docker.sock:/var/run/docker.sock
# ... postgres, etc....
При запуске docker-compose с этим файлом я получаю следующую ошибку:
Невозможно подключиться к демону Docker в unix: /// var / run / docker.носок.Работает ли демон docker?
Как настроить файл docker-compose, чтобы я мог использовать docker.sock (или Docker) внутри запущенного контейнера?
В Linux вы можете использовать что-то вроде тома: /var/run/docker.sock:/var/run/docker.sock.Это не работает в среде Windows.Когда вы добавляете эту папку (/ var) в Oracle VM Virtualbox, она не будет вечно получать IP.И на многих постах