卸載舊版本
較舊的Docker版本稱爲docker或docker-engine。如果已安裝這些程序,請卸載它們以及相關的依賴項。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum報告未安裝這些軟件包,此時就OK了。
/var/lib/docker/
的內容(包括映像,容器,卷和網絡)被保留。 Docker Engine-Community軟件包現在稱爲docker-ce。
使用存儲庫安裝
在新主機上首次安裝Docker Engine-Community
之前,需要設置Docker
存儲庫。之後,您可以從存儲庫安裝和更新Docker
。
設置存儲庫
- 安裝所需的軟件包。
yum-utils
提供了yum-config-manager
效用,並device-mapper-persistent-data
和lvm2
由需要devicemapper
存儲驅動程序。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
結果:
2.使用以下命令來設置穩定的存儲庫。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
結果:
安裝DOCKER ENGINE - COMMUNITY
- 安裝最新版本的
Docker Engine-Community
和containerd
,或者轉到下一步安裝特定
版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
結果:
如果提示您接受GPG密鑰,請驗證指紋是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,則接受它。
- 要安裝特定版本的Docker Engine-Community,請在存儲庫中列出可用版本,然後選擇並安裝:
(1).列出並排序您存儲庫中可用的版本。此示例按版本號(從高到低)對結果進行排序,並被截斷:
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
返回的列表取決於啓用的存儲庫,並且特定於你的CentOS版本(.el7
在此示例中以後綴表示)。
(2).通過其完全合格的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce
)加上版本字符串(第二列),從第一個冒號(:
)一直到第一個連字符,並用連字符(-
)分隔。例如,docker-ce-18.09.1
。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
Docker已安裝但尚未啓動。docker創建該組,但沒有用戶添加到該組。
- 啓動Docker。
$ sudo systemctl start docker
- 通過運行hello-world 映像來驗證是否正確安裝了
Docker Engine-Community
。
$ sudo docker run hello-world
此命令下載測試圖像並在容器中運行。容器運行時,它會打印參考消息並退出。
Docker Engine-Community
已安裝並正在運行。您需要使用sudo
來運行Docker
命令。繼續進行安裝後的配置,以允許非特權用戶
運行Docker
命令以及其他可選配置步驟。
以非root用戶身份管理Docker
Docker
守護程序綁定到Unix
套接字而不是TCP端口。默認情況下,Unix
套接字由用戶擁有root
,其他用戶只能使用來訪問它sudo
。Docker
守護程序始終以root
用戶身份運行。
如果您不想以sudo
作爲docker
命令的開頭,請創建一個名爲docker
的Unix
組並將用戶添加到其中。 Docker
守護程序啓動時,它將創建一個可由Docker
組成員訪問的Unix
套接字。
要創建docker組並添加用戶,請執行以下操作:
- 創建docker組。
$ sudo groupadd docker
- 將用戶添加到該docker組。
$ sudo usermod -aG docker $USER
- 註銷並重新登錄,以便重新評估您的組成員身份。
如果在虛擬機上進行測試,則可能需要重新啓動虛擬機以使更改生效。
在桌面Linux環境(例如X Windows)上,完全註銷會話,然後重新登錄。
在Linux上,您還可以運行以下命令來激活對組的更改:
$ newgrp docker
- 確認你可以在沒有sudo的情況下運行docker命令。
$ docker run hello-world
此命令下載測試鏡像並在容器中運行。 容器運行時,它會打印參考消息並退出。
如果最初在將用戶添加到docker
組之前使用sudo
運行Docker CLI
命令,則可能會看到以下錯誤,這表明〜/ .docker /
目錄是由於sudo
命令而使用不正確的權限創建的。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
要解決此問題,請刪除~/.docker/目錄(會自動重新創建目錄,但是所有自定義設置都會丟失),或者使用以下命令更改其所有權和權限:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R