Я видел, как многие люди задавали вопрос: Как выполнить Docker внутри контейнера Docker? И на самом деле может быть вариант использования для этого.
Наиболее очевидный вариант использования Для меня был контейнер Jenkins, который должен выполнить команды Docker, чтобы создать и натолкнуть изображение в Docker Repo в его заданиях.
Есть 3 способа сделать это:
Получите готовое изображение Jenkins с предварительно установленным Docker
Установите Docker самостоятельно на официальном изображении Дженкинса (отрегулировав Dockerfile и восстановив изображение)
Используйте Docker, установленную на хосте, где работает контейнер. -> Это вариант, который я использовал
Чтобы доставить докер из хоста в контейнер, вам нужно установить путь установки Docker на хосте в контейнер Jenkins.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jenkins
spec:
template:
spec:
containers:
- image: jenkins
name: jenkins
...
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
...
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
Теперь, когда этот контейнер Jenkins начнется, у вас будут команды Docker, доступные внутри.
Полный и бесплатный курс Kubernetes & Docker на YouTube
Оригинал: «https://dev.to/techworld_with_nana/how-to-execute-docker-commands-inside-of-a-docker-container-3j2h»