каталог монтирования в контейнер не будет работать с podman - PullRequest
0 голосов
/ 30 мая 2020

Поскольку у меня есть Fedora, я пытался запустить пример nginx из их учебника, но не получил nginx, чтобы показать какой-либо контент.

Когда я запускаю этот контейнер:

podman run --name mynginx1 -p 8080:80 -d nginx

, я получаю Добро пожаловать на nginx! страницу.

Но когда я пытаюсь запустите пример с установленным каталогом:

podman run --name mynginx2 \
  --mount type=bind,source=/home/simon/Dokumente/podman/nginx/content,target=/usr/share/nginx/html \
  -p 9080:80 -d nginx

Я также получаю страницу Добро пожаловать на nginx! , но у меня есть файл index.html в этом исходном каталоге.

В чем проблема с этим контейнером?

1 Ответ

0 голосов
/ 30 мая 2020

Когда мы привязываем том, он теряет разрешение на путь /usr/share/nginx/html. Это происходит из-за принудительного применения SE Linux.

mynginx1

root@f3fb6ece7eba:/usr/share/nginx/html# ls
50x.html  index.html

mynginx2

root@af0803674402:/usr/share/nginx/html# ls
ls: cannot open directory '.': Permission denied

Проверьте политику SE Linux хоста, на котором работает podman.

$ getenforce 
Enforcing

Если он находится в режиме Enforcing, измените его на Permissive.

$ sudo setenforce 0
$ getenforce 
Permissive

Повторно запустите контейнер mynginx2, exec и получите доступ к содержимому /usr/share/nginx/html

$ podman run --name mynginx2 --mount type=bind,source=/home/tc/q2,target=/usr/share/nginx/html -p 9080:80 -d nginx
7ff2bdfb7ccfc6f90a9bd7957b08e48ea72d7c2303d47d11a412c6c8601976b6
$ podman exec -it mynginx2 bash
root@7ff2bdfb7ccf:/# cd /usr/share/nginx/html/
root@7ff2bdfb7ccf:/usr/share/nginx/html# ls
index.html


$ curl -I -s 127.0.0.1:8080
HTTP/1.1 200 OK

$ curl -I 127.0.0.1:9080
HTTP/1.1 200 OK
...