2016-04-06 35 views
2

我試圖將CentOS 7上的Docker從1.9升級到1.10。我使用所提供的泊塢窗網站上的腳本:由於衝突導致Docker升級失敗

https://docs.docker.com/engine/installation/linux/centos/

我運行該腳本:

最後,腳本執行以下命令:

sudo -E sh -c 'sleep 3; yum -y -q install docker-engine' 

這命令失敗並顯示以下消息:

Error: docker-engine-selinux conflicts with docker-selinux-1.9.1-25.el7.centos.x86_64 
Error: docker-engine conflicts with docker-1.9.1-25.el7.centos.x86_64 
You could try using --skip-broken to work around the problem 
You could try running: rpm -Va --nofiles --nodigest 

我已經將此失敗隔離爲yum命令,並嘗試使用--skip-broken運行它。儘管如此,這並沒有太大的作用:

$ sudo yum -y -q --skip-broken install docker-engine 

    Packages skipped because of dependency problems: 
docker-engine-1.10.3-1.el7.centos.x86_64 from docker-main-repo 
docker-engine-selinux-1.10.3-1.el7.centos.noarch from docker-main-repo 

嘗試rpm命令什麼也不做。運行引用的rpm命令似乎可以做某些事情,但無論如何,它對安裝都沒有影響。失敗依然存在。

互聯網搜索顯示其他人也看到類似的問題,但通常他們的問題出現了,因爲失敗時引用的一些依賴關係丟失了。在我的系統上似乎沒有任何缺失的依賴關係。

我甚至試過刪除版本1.9。這也不會改變任何事情。

按照泊塢窗網站上提供的手動安裝說明,也沒有改變任何內容。

在Docker文檔中也沒有描述這個特定問題的東西。

有沒有人見過這個確切的問題?有誰知道一些方法來解決它?

請指教。

回答

2

從這個消息:

泊塢窗,發動機的SELinux與碼頭工人SELinux的

衝突,我懷疑你以前有紅帽分佈式泊塢窗的安裝版本,它安裝docker-selinux。官方的Docker軟件包也會安裝一個類似的軟件包(docker-engine-selinux),並與您已經安裝的軟件包發生衝突。

最好的方法是卸載現有的碼頭版本(包括docker-selinux包),然後按照文檔中的說明安裝docker-engine; https://docs.docker.com/engine/installation/linux/centos/

+0

您建議的方法工作。我不知道有一個單獨的docker-selinux軟件包...它在我安裝docker時安裝,但沒有卸載...?希望最新的安裝不會有這樣煩人的疏忽......請注意,在運行1.10之前,應該先卸載docker-selinux軟件包和docker軟件包(稱爲「docker」,而不是「docker-engine」!)安裝腳本。 –

+0

該軟件包實際上在官方存儲庫http://yum.dockerproject.org/repo/main/centos/7/Packages/中稱爲「docker-engine」。你能檢查你正在安裝哪個存儲庫嗎? – thaJeztah

+0

噢,我知道我沒有使用官方存儲庫,因爲我能夠安裝的1.10版本被稱爲「docker-engine」,但我擁有的1.9版本不是官方軟件包(它實際上被命名爲「docker」 ,而不是「碼頭引擎」)。那個包來自哪裏,我不知道(但並不真正關心),但我很確定這不是官方的包。 –