Если я хочу запустить контейнер B
внутри контейнера A
(повторное использование демона Docker), я могу просто связать mount /var/run/docker.sock
и /usr/bin/docker
и с радостью вызвать docker run
в A
.
Теперь я хотел бы разделить объем k8s между A
и B
. Для этого я подумал о создании тома emptyDir в A
и передал его в B
, используя docker run -v
. Но это не работает, так как том emptyDir не является томом Docker (он не отображается при запуске docker volume ls
).
Фрагмент ниже печатает список тома, где cache-volume
не появляется:
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: alpine
name: test-container
command: [ash]
args: ["-c", "docker volume ls"]
volumeMounts:
- name: dockersock
mountPath: "/var/run/docker.sock"
- name: dockerlib
mountPath: "/usr/bin/docker"
- name: cache-volume
mountPath: /cache
volumes:
- name: dockersock
hostPath:
path: /var/run/docker.sock
- name: dockerlib
hostPath:
path: /usr/bin/docker
- name: cache-volume
emptyDir: {}
Таким образом, вопрос заключается в следующем: есть ли способ определить том, пригодный для использования как в k8s, так и в докере?