docker實踐總結——centos安裝docker

說明

本示例是在centos7中通過yum安裝docker 。
由於執行yum需要root權限, 所以需要切換到root用戶,或者使用sodo。


查看系統版本

  1. 查看centos版本:lsb_release -a
$ lsb_release -a

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.7.1908 (Core)
Release:	7.7.1908
Codename:	Core

可以看出我的centos版本爲7.7.1908


安裝

  1. 安裝必要的軟件包

yum-utils 管理yum倉庫等的一個擴展包工具,比如下面用到的yum-config-manager是它提供的工具之一,它提供的其他工具可以執行man命令具體查看:man yum-utils 。

device-mapper-persistent-data docker中存儲數據需要用到“device mapper 驅動程序”, 而該驅動程序又依賴 device-mapper-persistent-data 和 lvm2。

lvm2 邏輯卷管理(Logical Volume Manager)

# 通過如下命令可以查看是否已安裝上面三個軟件包:
yum list installed yum-utils
yum list installed device-mapper-persistent-data
yum list installed lvm2

# 如果沒有安裝,則執行install進行安裝,三個軟件包可以一起安裝  
yum install -y yum-utils device-mapper-persistent-data lvm2

  1. 設置docker的倉庫地址
#docker的yum倉庫 ,yum-config-manager是yum-utils提供的工具。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  1. 安裝docker
#`yum list docker-ce`查看倉庫中所有docker版本, `sort -r`通過管道命令反序排列   
yum list docker-ce --showduplicates | sort -r

#從上面的列表中選一個版本進行安裝
yum install docker-ce-17.03.0.ce

#或者直接安裝最新穩定版(不指定版本)  
yum install docker-ce

啓動docker

#啓動docker服務
systemctl start docker

#設置docker服務開機啓動  
systemctl enable docker

權限問題

非root用戶不能操作docker,比如比如執行 docker version,報錯信息如下:

$ docker version
Got permission denied while trying to connect to the Docker daemon socket 
at unix:///var/run/docker.sock: 
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: 
dial unix /var/run/docker.sock: connect: permission denied

分析:
docker進程使用Unix Socket協議而非TCP進行通信。
而默認情況下,Unix socket需要root權限。
說明:UNIX Socket 是unix同一臺服務器上不同進程間的一種通信協議。

其實在安裝docker的時候自動新建了docker用戶組,docker用戶組是有該權限的。
查看用戶組:cat /etc/group | grep docker
查看用戶組
比如我想用deploy用戶來操作docker,將deploy加入docker組即可。

#將用戶deploy添加到docker組(給用戶增加一個組,一個用戶可以屬於多個組)
usermod -a -G docker deploy  

#查看用戶所在組 
groups deploy   






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章