Запуск докера внутри Кубернетеса с контейнером - PullRequest
0 голосов
/ 22 ноября 2018

Поскольку K8S v1.11 Runtime был изменен с dockerd на containerd.Я использую Jenkins поверх kubernetes для создания образов Docker, используя Docker вне Docker (dood).

Когда я попытался переключиться на использование файла сокета из conatinerd (containerd / containerd.sock был сопоставлен ad / var /запустите / docker.sock) с обычным клиентом Docker a получил следующую ошибку Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x00\x00\x00\x04\x00\x00\x00\x00\x00".

Можно ли использовать клиент Docker с containerd?

1 Ответ

0 голосов
/ 22 ноября 2018

Отказ от ответственности: на момент написания containerd не заменял Docker, вы можете установить containerd отдельно от Docker, и вы можете указать Kubernetes CRI , чтобы напрямую общаться с контейнерным сокетом.

Итак, когда вы устанавливаете Docker, он устанавливает вместе с containerd, и демон Docker говорит с ним.Вы увидите процесс, подобный следующему:

docker-containerd --config /var/run/docker/containerd/containerd.toml

Тем не менее, клиент Docker все еще общается с демоном Docker, поэтому, когда вы запускаете клиент Docker в своем контейнере, вам все равно нужно общаться непосредственно с Docker.демон (/var/run/docker.sock), так что вы можете переключиться обратно на /var/run/docker.sock, и я считаю, что он должен работать.

...