我无法让人在Alpine Linux Docker容器中工作。
拉高山Linux并启动一个容器。
docker pull alpine:latest docker run -t -i alpine /bin/ash
从所有远程存储库更新存储库索引。
apk update
安装man
和man-pages
。
apk add man man-pages
安装一个软件包及其文档。
apk add curl apk add curl-doc
尝试查看手册页。
/ # man curl /usr/share/man/mandoc.db: No such file or directory man: outdated mandoc.db lacks curl(1) entry, consider running # makewhatis /usr/share/man more: -s: No such file or directory / #
什么?
更新
根据@ EugenMayer的build议来添加mdicml-apropos
,我可以使用curl --manual
工作而不是man curl
。 不幸的是, gnupg --manual
根本不起作用。 这种行为是不一致的和意外的。
你需要添加
apk add mdocml-apropos
然后为每个包你需要男人包
apk add curl-doc
和你一样,你会像以前那样去使用男人
apk add man man-pages mdocml-apropos
这个来源(加上在那里丢失的mdocml-apropos)是https://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#Why_don.27t_I_have_man_pages_or_where_is_the_.27man.27_command.3F,但是间隙,我不能得到它的工作我。
还试图export TERM=xterm
,看看是否在iteractivity
问题,但它不是。
也尝试手动makewhatis /usr/share/man
,但没有成功。
有趣的是,
ls -la /usr/share/man/man1/curl-config.1.gz -rw-r--r-- 1 root root 1687 Aug 4 15:07 /usr/share/man/man1/curl-config.1.gz
所以有一个手册页
对我来说,摆脱这个错误:
man man more: -s: No such file or directory
我用:
export PAGER=less
那么它的工作
事实上,这与你连接容器的方式有关。 我在LXD上使用了很多高级功能,通过lxc exec container ash
连接后,通常不能读取任何手册页。 我想泊坞窗以同样的方式连接你的容器。
$ lxc exec alp03 ash ~ # man man more: -s: No such file or directory
所以你可以用su -
,然后你就可以用man:
~ # su - alp03:~# man man MAN(1P) POSIX Programmer's Manual (...)
请注意su -
命令之后的提示是如何不同的。
另外,如果我在容器中运行一个ssh服务器,然后通过ssh连接到这个容器,那么这个人是完美的工作。