Docker
yum 聲明包已安裝,但 docker 中沒有文件
我有一些奇怪的行為 yum 與 rpm 都聲稱要安裝,但只有 rpm 實際創建文件,而 yum 只是聲稱已安裝。我不知道我做錯了什麼以及為什麼文件不會通過 yum 在 docker 中安裝。
腳步:
docker run --rm -it centos:7
設置 yum 記憶體,這樣我們就可以通過 yum 和 rpm 使用同一個文件
vi /etc/yum.conf -> set keepcache=1
讓我們開始 yum install
yum install -y centos-indexhtml
修剪輸出:
Installed: centos-indexhtml.noarch 0:7-9.el7.centos Complete!
ll /usr/share/doc/HTML ls: cannot access /usr/share/doc/HTML: No such file or directory
所以讓我們從 yum 解除安裝這個包並使用 yum 記憶體並直接從 RPM 安裝
yum remove -y centos-indexhtml (trimmed output) Removed: centos-indexhtml.noarch 0:7-9.el7.centos Complete!
rpm -Uvh /var/cache/yum/x86_64/7/base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm Preparing... ################################# [100%] Updating / installing... 1:centos-indexhtml-7-9.el7.centos ################################# [100%]
並驗證文件是否存在:
ll /usr/share/doc/HTML total 16 drwxr-xr-x 2 root root 4096 Jan 10 18:18 en-US drwxr-xr-x 2 root root 4096 Jan 10 18:18 img -rwxr-xr-x 1 root root 4833 May 16 2014 index.html
我對 yum 做錯了什麼?我沒有收到任何錯誤,只是沒有通過 yum 寫入路徑?
docker 中的
yum
配置略有不同:在同一個/etc/yum.conf
文件中,您會發現:tsflags=nodocs
這意味著軟體包不會安裝它們的文件。在 docker 鏡像中,大多數人的目標是擁有一個盡可能小的工作應用程序,因此刪除文件文件。
通過
rpm
直接使用,您將繞過此yum
配置。