Я видел, как многие люди задавали вопрос: Как выполнить 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»