轉自:https://blog.csdn.net/qq_36148847/article/details/79273591
Docker 官網上並沒有提供關於 Deepin 的 Docker 安裝教程,由於 Deepin 是基於 Debian 的,所以可以參照官網 Debian的安裝教程安裝,但 Deepin 在定製過程中進行了大量修改,所以使用官方教程可能會失敗,所以這裏記錄下 Deepin 下的 Docker 安裝。
一.認識 Docker
簡介:Docker 是一個開源的應用容器引擎,提供了一種能夠讓應用程序相互隔離地、安全地運行在容器中的方法且其包含了應用程序運行所需的所有運行環境。
更具體的信息可以查看 Docker 官方文檔
以下相關信息參考來自深度官網
二. 關於 Deepin 中的 Docker
深度官方 Deepin 的應用倉庫已經集成了docker,但不是類似於 docker-ce 這樣的最新版本。要想使用最新版可以參考官網 debian 安裝教程安裝,不過由於深度 Deepin 15.4 基於 sid 版本開發,通過 $(lsb_release -cs) 獲取的版本信息爲 unstable,而 docker 官方源並沒提供 sid 這種 unstable 版本的 docker,所以使用官方教程是安裝不成功的。
查看下圖
這裏可以看出獲取的版本信息爲 unstable ,下圖爲博主安裝的 Docker CE 版本,博主系統爲 Deepin 15.5
三. 在 Deepin 中安裝最新的 Docker
1.如果以前安裝過老版本,可以先卸載以前版本
sudo apt-get remove docker docker-engine
1
2
2.安裝 docker-ce 和密鑰管理以及下載相關的工具
說明: 這裏主要是提供 curl命令、提供add-apt-repository工具的software-properties-common包 和密鑰管理工具。
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common
1
3.下載並安裝密鑰
注意: 密鑰能否安裝成功與網絡環境相關,請選擇合適的時間短安裝,如果安裝失敗,請繼續執行這一步。
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
1
如下圖所示
4.查看密鑰是否安裝成功
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通過搜索指紋的最後8個字符,確認您現在擁有指紋的密鑰 。
sudo apt-key fingerprint 0EBFCD88
1
如果安裝成功,會出現如下內容:
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <[email protected]>
sub 4096R/F273FCD8 2017-02-22
1
2
3
4
5
如下圖所示
呃,好像跟官方說的不太一樣呢!不過不影響
5.添加 docker 官方倉庫
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian wheezy stable"
1
Note: 這點很奇怪,官方在wheezy 位置使用的是 $(lsb_release -cs),而在 deepin下執行lsb_release -cs 這個命令時,deepin 顯示的是 unstable,而默認 debian 根據正式發行版本會顯示是jessie或者wheezy的。這個如果不更改成特定版本信息,在 sudo apt-get update 更新時就不起作用。
更正: 之所以獲取的 unstable 不成功,是因爲 docker 官方沒有提供 sid 版本的docker。想安裝必須將該部分替換成相應版本。
Note:這裏例子的 debian 的版本代號是wheezy,應該替換成 deepin 基於的 debian 版本對應的代號,查看版本號命令:cat /etc/debian_version,再根據版本號對應的代號替換上面命令的 wheezy即可。
更正: 按上面的方法操作,例如我操作上面的命令得到 debain 版本是 8.0 ,修改後填入到上面命令中發現,是無法安裝 docker 的,但把 8.0 換成 wheezy ,則可以正常安裝 docker ,當前 docker 的版本爲17.12.0-ce。
這裏,叨叨絮絮那麼多。本人系統 Deepin 15.5,安裝時直接運行了以上命令而沒有進行任何修改,仍然正常運行與安裝。查看以下圖。
成功添加 docker 官方倉庫
6.更新倉庫
sudo apt-get update
1
7.安裝 docker-ce
Note:由於網絡不穩定,可能會下載失敗。如果下載失敗了,可以多試幾次或者找個合適的時間繼續。
sudo apt-get install docker-ce
1
查看下圖
8.啓動 docker-ce
systemctl start docker
1
Note:在安裝完後啓動報錯,查看 docker.service 的 unit文件,路徑爲 /lib/systemd/system/docker.service,把 ExecStart=/usr/bin/dockerd -H fd:// 修改爲ExecStart=/usr/bin/dockerd,則可以正常啓動 docker 。
啓動 Docker
這裏在啓動的時候並沒有遇到如上問題,查看下圖
9.查看安裝的版本信息
docker version
1
如下圖
好的,如你所見這裏出現了小小的 bug,出現 deny 信息。查看下一步解決。
10.設置 docker 非 root 用戶
如安裝的流程可知,一路上都是以sudo 超級用戶進行的配置。那麼,在普通用戶登入的情況下可能會出現以下錯誤信息
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.35/version: dial unix /var/run/docker.sock: connect: permission denied
1
2
查看一下是否有 docker 用戶組
cat /etc/group | grep docker
1
如圖,圖中已顯示存在相應用戶組
如果沒有,可以通過以下命令創建
sudo groupadd -g 999 docker
1
將當前用戶加入用戶組
sudo gpasswd -a ${USER} docker
1
如下圖
查看 docker.sock 文件權限
cd /var/run
ll | grep docker.
1
2
如下圖
可以看到其屬主爲 root,權限爲 rw,可讀可寫;其屬組爲 docker,權限爲 rw,可讀可寫。如果要當前用戶可直接讀取該文件,那麼就把當前用戶添加到 docker 屬組即可。上面已經說明。
修改 docker.sock 的權限
sudo chmod a+rw /var/run/docker.sock
1
可以通過此命令設置文件權限
設置非 root 用戶運行已經不報錯誤信息
11.驗證docker是否被正確安裝並且能夠正常使用
sudo docker run hello-world
1
2
查看下圖
如圖,已經成功安裝
四. 更換國內docker加速器
如果使用docker官方倉庫,速度會很慢,所以更換國內加速器就不可避免了。
方式一:使用阿里雲的docker加速器。
1.在阿里雲申請一個賬號
打開連接 https://cr.console.aliyun.com/#/accelerator 拷貝您的專屬加速器地址。
2.修改修改 daemon 配置文件 /etc/docker/daemon.json 來使用加速器(下面是4個命令,分別單獨執行)
注意: 這裏的https://jxus37ad.mirror.aliyuncs.com是申請者的加速器地址,在此僅僅用於演示,而使用者要個根據自己的使用的情況填寫自己申請的加速器地址。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
3
4
5
6
7
8
9
方式二:使用 docker-cn 提供的鏡像源
1.編輯 /etc/docker/daemon.json 文件,並輸入docker-cn 鏡像源地址
sudo nano /etc/docker/daemon.json
1
2
輸入以下內容
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
1
2
3
如下圖所示
快捷鍵 ctrl+x 退出,Y 確定保存並退出。
2.重啓docker服務
sudo service docker restart
1
2
五. 禁止開機自啓
默認情況下 Docker 是開機自啓的,如果我們想禁用開機自啓,可以通過安裝 chkconfig 命令來管理 Deepin 自啓項。
# 安裝chkconfig
sudo apt-get install chkconfig
# 移除自啓
sudo chkconfig --del docker
1
2
3
4
5
六.更多相關信息
deepin 安裝 docker 的問題
深度系統如何安裝docker?
Deepin 官網上的 Docker
Docker 官方文檔