# 0x00 安裝熱身linux
- 針對CE版本git
Docker 分爲 CE 和 EE 版本, CE免費,EE收費,CE版以及可以知足咱們全部需求github
本文針對 CE 版本的安裝進行說明docker
- 系統說明centos
本文以 CentOS 7爲例進行安裝, 不要使用 CentOS 7 的 Archived版 和 測試版,由於不支持bash
- 源說明服務器
CentOS 的擴展源 (centos-extras) 必須啓用,默認也是啓用的,可是若是你以前關閉過它,須要從新啓用一下網絡
建議使用overlay2存儲引擎app
- 刪除舊版本的Dockercurl
默認 yum 安裝的 docker 或 docker-engine 版本好久,咱們先卸載掉
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
備註: /var/lib/docker/ 下面的 容器,鏡像,網絡,磁盤卷 會被保留
新的 docker 改成 docker-ce 也就是免費版的 docker
# 0x01 開始安裝
有三種安裝方式:
1. 經過設置網絡源,而後yum安裝,方便往後維護和升級 (推薦)
2. 下載RPM包手動安裝和升級,若是沒有網絡這種方法很實用
3. 使用自動化腳本安裝,適合在開發和測試環境
- 使用yum安裝
開始安裝以前須要設置一下 Docker 源,後面直接經過源安裝和升級
1. 安裝 yum-utils , yum-config-manager, device-mapper-persistent-data lvm2 (被 devicemapper存儲引擎依賴)
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2. 設置官方 docker-ce.repo 源
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
2.5 下面幾個可選步驟
默認是 stable版,若是先試試 nighty 或者 test 能夠用下面的命令開啓或關閉
啓用 nightly版
$ sudo yum-config-manager --enable docker-ce-nightly
啓用 test版
$ sudo yum-config-manager --enable docker-ce-test
禁用 nightly
$ sudo yum-config-manager --disable docker-ce-nightly
3. 開始安裝
3.1 廢話了那麼多,這一步纔是關鍵,默認安裝的是最新的,或者使用後面的步驟安裝指定的版本
sudo yum install docker-ce docker-ce-cli containerd.io
這裏可能會提示 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 密鑰是否匹配
若是和這裏的同樣,能夠選擇接受。注意最新的版本多是不穩定的
Docker 這樣就安裝好了,但還沒啓用,默認建立了一個 docker 組,但沒有用戶在這個組上
3.2 指定具體版本的docker安裝
A. 可使用下面的命令,列出能夠從源裏安裝的全部docker版本,而且高到低排序
$ 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 的具體版本
B. 選擇具體的版本進行安裝
選擇方式就是用 - 進行銜接你要的版本號,看以下格式
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
好比這裏我安裝的是 18.09.5 版
$ sudo yum install docker-ce-18.09.5 docker-ce-cli-18.09.5 containerd.io
同樣執行完只是安裝了docker 還沒啓用,建立了暫時無用戶的 docker 組
4. 啓動docker
$ sudo systemctl start docker
5.驗證客戶端能正常使用,測試hello-world鏡像
$ sudo docker run hello-world
這步會從 docker-hub (相似github) 上面拉去 hello-world鏡像,而後經過這個鏡像建立容器並運行
打印一個hello world就退出,也表明docker-cli能夠用
- 使用RPM安裝 (不推薦)
若是你的linux電腦沒有網絡(什麼年代了?沒網?),能夠用下載RPM包放到CentOS上手動安裝
1. 下載RPM包
而且想升級的話也須要從新到網上下載最新的安裝包
下載網址 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
若是不知道怎麼選,能夠參考下載下面三個包
docker-ce-cli-18.09.5-3.el7.x86_64.rpm
docker-ce-18.09.5-3.el7.x86_64.rpm
containerd.io-1.2.5-3.1.el7.x86_64.rpm
若是喜歡折騰想試試 nighty 的只要把 URL 裏的 stable 改爲 nighty 就行
2. 安裝RPM包
$ sudo yum install /path/to/package.rpm
執行完只是安裝了docker 還沒啓用,建立了暫時沒用戶的 docker 組
3. 啓動docker
$ sudo systemctl start docker
4. 驗證客戶端能正常使用,測試hello-world鏡像
$ sudo docker run hello-world
這步會從 docker-hub (相似github) 上面拉去 hello-world鏡像,而後經過這個鏡像建立容器並運行
打印一個hello world就退出,也表明docker-cli能夠用
5.升級
記住想升級就要回到第1步網上從新下載最新安裝包,跟着步驟走,而後
$ sudo yum update /path/to/package.rpm
- 使用一鍵部署腳本安裝
官方提供了一鍵部署腳本 get.docker.com 和 test.docker.com
建議使用 get 開頭的,這種方式避免交互很適合新手,這是docker-install 的源碼 docker-install
repository.
在生產環境中,使用這些腳本是不推薦的,你須要瞭解其中的風險( 說白了出事別找我 ),風險以下:
root
or sudo
privileges to run. Therefore, you should carefully examine and audit the scripts before running them.1. 腳本須要用 root身份運行,你認真最好審計一下代碼,否則刪庫跑路都不知道了
2. 腳本會嘗試探測你係統的版本,並改變相關的配置,此外無法加上自定義的安裝參數,可能會致使配置支持性不好,甚至語言變成日語,讓你看不懂。。。。
3. 腳本會無腦的把全部推薦和依賴全安裝了,不通過你的確認,致使有大量的包,取決於你的系統配置
4. 腳本不給你選擇具體哪一個版本,直接給你轉最新的
5. 若是你已經安過docker了,你用腳本的話又安裝一次的話,恭喜你,涼了,趕忙收拾一下那個啥吧
FBI Warning:
腳本運行以前檢查一下代碼,由於服務器上的腳本頗有多是給黑客替換的
看到這裏仍然堅持要來一下的話,那就來吧
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh <output truncated>
若是想要用非root用戶,須要執行下面的命令
sudo usermod -aG docker your-user
記得先退出,從新登錄纔會生效
- 卸載 Docker
到這裏你的 docker 應該經過前面三種方式中的一種安裝好了,你須要手動啓動一下,使用 systemctl 或者 service 命令
有言在先,默認狀況下非root是運行不了docker命令的,下面是卸載的方法
1. 中止docker
$ sudo systemctl stop docker
2. 卸載包
$ sudo yum remove docker-ce
3. 刪除資源(容器 鏡像 網絡 卷映射)
$ sudo rm -rf /var/lib/docker