Я пытаюсь запустить контейнер Linux на хосте Windows. Мне нужно запустить контейнер Linux в привилегированном режиме. Однако, когда я запускаю следующую команду:
docker run -it --privileged --name test centos:7 /bin/sh
В результате я получаю это - Error response from daemon: Windows does not support privileged mode.
Поэтому я попробовал функцию --cap-add
.
PS C:\Users\hello-vm> docker run -it -d --cap-add sys_admin --cap-add sys_resource --cap-add ipc_lock -d --name test centos:7 /bin/bash
c1cb9d7e7c5c9f8c88e816a3deb47dd0248718238d4a204a760addf554326459
PS C:\Users\hellouser>
PS C:\Users\hellouser>
PS C:\Users\hellouser>
PS C:\Users\hellouser>
PS C:\Users\hellouser>
PS C:\Users\hellouser> docker exec -it testdev /bin/bash -c "ulimit -l 20000"
/bin/bash: line 0: ulimit: max locked memory: cannot modify limit: Operation
not permitted
Указанная выше команда не работает. Когда я запускаю вышеупомянутую команду без -d
, команда работает
PS C:\Users\hellouser> docker run -it --cap-add sys_admin --cap-add sys_resource --cap-add ipc_lock --name test centos:7 /bin/bash -c "ulimit -l 20000; ulimit -a "
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3766
max locked memory (kbytes, -l) 20000
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3766
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Это похоже на то, что функция --cap-add
будет работать только для интерактивного терминала, или я что-то упускаю здесь очевидное?
Примечание. Я хочу, чтобы контейнер находился в рабочем режиме с добавленными этими возможностями.