Я пытаюсь создать контейнер с Docker API.
Моя среда выглядит следующим образом:
- Windows 11 (я думаю, она должна работать и в Windows 10)
- Версия Docker для настольных ПК
v20.10.8
со следующими отмеченными настройками:- Механизм на основе WS2
- Выставить демон на tcp: // localhost: 2375 без TLS
Мой запрос на завиток выглядит следующим образом:
curl --location --request POST 'http://localhost:2375/v1.41/containers/create?name=oraumum' \
--header 'Content-Type: application/json' \
--data-raw '{
"Image": "nginx",
"Volumes": {
"/volumes/data": { }
},
"ExposedPorts": {
"80/tcp": {}
},
"HostConfig": {
"PortBindings": {
"80/tcp": [
{
"HostPort": "5000"
}
]
},
"RestartPolicy": {
"Name": "always"
},
"Mounts": [
{
"Target": "/test",
"Source": "/",
"Type": "bind",
"ReadOnly": false
}
]
}
}'
В этом эксперименте я пытаюсь загрузить /
хоста в /test
своего контейнера.
Как ни странно, я обнаружил, что Source
Mount
не является ни моим WSL, ни Windows-компьютером:
docker exec -it oraumum bash
# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv test usr volumes
boot docker-entrypoint.d etc lib media opt root sbin sys tmp var
# cd /test
# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
# ls /home
# ls -al /home
total 8
drwxr-xr-x 2 root root 4096 Jun 13 10:30 .
drwxr-xr-x 1 root root 4096 Sep 12 13:46 ..
#
Что на самом деле здесь произошло? Это связано с Hyper-V или чем-то в этом роде?
ОБНОВЛЕНИЕ: мой WSL2 home
не пуст:
gofrendi@DESKTOP-MEO4ER4 [21:26:02] [/home]
-> % pwd
/home
gofrendi@DESKTOP-MEO4ER4 [21:26:07] [/home]
-> % ls -al
total 12
drwxr-xr-x 3 root root 4096 Sep 10 08:17 .
drwxr-xr-x 19 root root 4096 Sep 12 17:18 ..
drwxr-xr-x 24 gofrendi gofrendi 4096 Sep 12 21:26 gofrendi
gofrendi@DESKTOP-MEO4ER4 [21:26:12] [/home]
1 ответ
Отвечая на свой вопрос здесь: что произошло на самом деле.
Когда вы активируете серверный движок WSL2 на своем рабочем столе докера, он создает 2 разных хранилища (и, предположительно, также 2 разные виртуальные машины).
Помимо моей виртуальной машины WSL по умолчанию (Ubuntu
), Docker-desktop также создал docker-desktop
и docker-desktop-data
.
Источник монтирования, вероятно, находится на docker-desktop
или docker-desktop-data
.
Похожие вопросы
Новые вопросы
docker
По вопросам создания и запуска контейнеров Docker. ВОПРОСЫ ПО DOCKER ДОЛЖНЫ ОТНОСИТЬСЯ К РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. Подходящие темы включают Dockerfiles, Docker Compose и архитектуру. Как правило, если ваш вопрос о том, что происходит внутри контейнера, он, вероятно, здесь по теме; если это вне контейнера, это, вероятно, не по теме.
/test/mnt
?