Docker在不同環境下的安裝

本文記錄Docker分別在以下環境中的安裝步驟

  • Windows 10
  • CentOS 6
  • CentOS 7

Docker 簡介

Docker 分爲社區版和企業版,兩者區別如下:
在這裏插入圖片描述
在這裏插入圖片描述




Windows 10 安裝Docker

Windows 版 Docker 需要運行在一個安裝了64位Windows 10 操作系統的計算機上,通過啓動一個獨立的引擎來提供Docker 環境。
Windows 版 Docker 是一個社區版本(Community Edition,CE)的應用,並不是爲生產環境設計的。
Windows 版 Docker 在某些版本特性上可能是延後支持的。因爲Docker公司對該產品的定位是穩定性第一,新特性其次。

1. 環境要求
  • Windows 10 Pro / Enterprise / Education(1607 Anniversary Update、Build 14393 或者更新的版本)
  • Windows 必須是64位的版本
  • 啓用Windows 的Hyper-V 和 容器特性
2. BIOS中開啓硬件虛擬化支持

如何進入BIOS,不同的廠商方法不同,一般是F12、F8、F1、ESC等,具體自行百度即可。

找到“Virtualization”設置
在這裏插入圖片描述
修改爲Enabled
在這裏插入圖片描述
如何確認是否已開啓虛擬化
同時按Ctrl + Shift + Esc 進入任務管理器,點擊性能、CPU,查看是否已開啓虛擬化
在這裏插入圖片描述

3. 啓用Hyper-V 和 容器特性

進入程序和功能,點擊“啓用或關閉Windows功能”
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
重啓系統!

4. 安裝Docker

下載鏈接:https://www.docker.com/products/docker-desktop
點擊“Download for Windows”,會跳轉至Docker hub,使用Docker ID登錄進行下載。沒有Docker ID的話可以直接註冊一個。

下載完之後,直接雙擊運行即可。
在這裏插入圖片描述
可以看到Docker已經啓動了,關於Docker for Windows 的使用,下一篇博客中會寫到(現在還沒寫呢,爭取早日寫完)。
在這裏插入圖片描述



CentOS 6 安裝Docker

0. dcoker-io、docker-ce、docker-ee的區別
  • docker-io是舊版本,版本號爲1.x(最新到1.13)
  • 2017年02月,docker-io分爲了docker-ce、docker-ee,版本號以YY.MM-xx格式記錄(最新到19.03.3)
1. 環境要求

docker-ce必須安裝在CentOS 7 中,CentOS 6想安裝docker,有兩個選擇。

  • 升級CentOS 6 的內核至3.10以上(CentOS 6 的內核版本爲2.6)
  • 安裝舊版本的docker-io

升級內核會對生產環境造成嚴重影響,禁止直接升級生產環境內核版本。

留給我們的只有安裝舊版本docker-io這條路。

2. 離線安裝docker-io

由於CentOS 6 自帶的epel源中不包含docker-io,哪怕使用yum install epel-release後,仍然沒有docker-io,並且國內各大開源鏡像站中也沒有。
只能通過離線安裝(rpm方式安裝,和yum一樣,唯一不同就是要手動安裝很多依賴)

國內常用開源鏡像站:(這些epel中都沒有docker-io)

阿里:mirrors.aliyun.com
網易:mirrors.163.com
清華大學:mirrors.tuna.tsinghua.edu.cn
中科大:http://mirrors.ustc.edu.cn
浙大:mirrors.zju.edu.cn
華中科技大學:mirror.hust.edu.cn
上海交大:ftp.sjtu.edu.cn

3. 安裝包及依賴準備

下載鏈接:http://www.rpmfind.net/linux/rpm2html/search.php?query=docker

系統環境 rpm包版本
CentOS 6.10 for x86_64 libcgroup-0.40.rc1-26.el6.x86_64.rpm
Extras Packages for Enterprise Linux 6 for x86_64 lxc-libs-1.0.11-1.el6.x86_64.rpm
Extras Packages for Enterprise Linux 6 for x86_64 lua-alt-getopt-0.7.0-1.el6.noarch.rpm
Extras Packages for Enterprise Linux 6 for x86_64 lua-filesystem-1.4.2-1.el6.x86_64.rpm
Extras Packages for Enterprise Linux 6 for x86_64 lua-lxc-1.0.11-1.el6.x86_64.rpm
Extras Packages for Enterprise Linux 6 for x86_64 lxc-1.0.11-1.el6.x86_64.rpm
Device-mapper shared library CentOS 6.10 for x86_64 device-mapper-libs-1.02.117-12.el6_9.1.x86_64.rpm
CentOS 6 docker-io-1.7.1-2.el6.x86_64.rpm
4. 安裝docker-io

將docker和依賴的rpm包上傳至服務器,使用rpm -ivh進行安裝,lxc-libs要先安裝

[root@localhost docker-io-1.7.1]# rpm -ivh lxc-libs-1.0.11-1.el6.x86_64.rpm 
[root@localhost docker-io-1.7.1]# rpm -ivh lua-lxc-1.0.11-1.el6.x86_64.rpm 
[root@localhost docker-io-1.7.1]# rpm -ivh lxc-1.0.11-1.el6.x86_64.rpm 
[root@localhost docker-io-1.7.1]# rpm -ivh libcgroup-0.40.rc1-26.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm 
[root@localhost docker-io-1.7.1]# rpm -ivh device-mapper-libs-1.02.117-12.el6_9.1.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm
warning: docker-io-1.7.1-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:docker-io              ########################################### [100%]
[root@localhost docker-io-1.7.1]# 
5. 啓動docker
[root@localhost docker-io-1.7.1]# docker -v
Docker version 1.7.1, build 786b29d/1.7.1
[root@localhost docker-io-1.7.1]# service docker start
Starting cgconfig service:                             [確定]
Starting docker:	                                   [確定]
[root@localhost docker-io-1.7.1]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost docker-io-1.7.1]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost docker-io-1.7.1]# 

docker的使用,後續會另起博客。




CentOS 7 安裝Docker

官方安裝鏈接:https://docs.docker.com/v17.09/engine/installation/linux/docker-ce/centos/#install-using-the-repository

1. 確定系統版本信息
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2. 檢查是否存在舊版本
[root@localhost ~]# rpm -qa | grep docker
[root@localhost ~]# 
3. 查看yum源中是否有docker-ce
[root@localhost ~]# yum list | grep docker-ce
[root@localhost ~]#

可以看到,CentOS中沒有docker-ce,按照docker官網指示操作即可

4. 安裝所需的軟件包
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
5. 設置穩定的存儲庫
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果安裝時網速很慢,可以換阿里雲的源

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

再查看yum源中,就有docker-ce了,最新版本是19.03.3

[root@localhost ~]# yum list | grep docker-ce
containerd.io.x86_64                        1.2.10-3.2.el7             docker-ce-stable
docker-ce.x86_64                            3:19.03.3-3.el7            docker-ce-stable
docker-ce-cli.x86_64                        1:19.03.3-3.el7            docker-ce-stable
docker-ce-selinux.noarch                    17.03.3.ce-1.el7           docker-ce-stable
[root@localhost ~]# 
6. 安裝docker-ce
  • 直接安裝最新的docker-ce.
    如果這是您是第一次從最近添加的存儲庫中安裝軟件包,則會提示您接受GPG密鑰,並顯示密鑰的指紋。驗證指紋是否正確,如果正確,請接受密鑰。指紋應該匹配**** **** **** **** **** **** **** **** ****
[root@localhost ~]# yum install docker-ce
[root@localhost ~]# systemctl start docker
  • 安裝指定版本的docker-ce.
    尤其是生產環境,穩定性高於一切,不建議直接安裝最新版本。可以通過以下方式安裝指定版本。

查看版本列表
列表的內容取決於啓用了哪些存儲庫,並且將特定於您的CentOS .el7版本(在此示例中,由該版本的後綴表示)。選擇要安裝的特定版本。第二列是版本字符串。您可以使用整個版本字符串,但至少需要在第一個連字符中包含該字符串。第三列是存儲庫名稱,它指示軟件包來自哪個存儲庫,並擴展其穩定性級別。要安裝特定版本,請在軟件包名稱後附加版本字符串,並用連字符(-)分隔。

[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
 * updates: mirrors.163.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
 * extras: mirrors.163.com
docker-ce.x86_64            3:19.03.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stable
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.3.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.2.ce-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
docker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable
 * base: mirrors.163.com
Available Packages
[root@localhost ~]# 

注意:版本字符串是程序包名稱加上直到第一個連字符的版本。在上面的示例中,標準包名稱爲docker-ce-17.06.1.ce。

指定版本安裝docker-ce

18.06.3.ce之後的版本字符串格式變了,以下是安裝命令區別

[root@localhost ~]# yum install docker-ce-18.03.1.ce
[root@localhost ~]# yum install docker-ce-19.03.3
7. 驗證docker-ce是否安裝成功
[root@localhost ~]# docker -v
Docker version 19.03.3, build a872fc2f86
[root@localhost ~]# rpm -qa | grep docker
docker-ce-cli-19.03.3-3.el7.x86_64
docker-ce-19.03.3-3.el7.x86_64
[root@localhost ~]# 
  • 啓動docker,通過docker run hello-world進行終極驗證
[root@localhost /]# systemctl start docker
[root@localhost /]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
[root@localhost /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
afd4a0f174c4        hello-world         "/hello"            28 seconds ago      Exited (0) 26 seconds ago                       beautiful_ellis
[root@localhost /]# 

已成功安裝。

8. 卸載docker-ce
[root@localhost /]# yum remove docker docker-common docker-selinux docker-engine
[root@localhost /]# rpm -qa | grep docker
docker-ce-cli-19.03.3-3.el7.x86_64
[root@localhost /]# docker -v
Docker version 19.03.3, build a872fc2f86
[root@localhost /]# rpm -e docker-ce-cli-19.03.3-3.el7.x86_64
[root@localhost /]# docker -v
bash: /usr/bin/docker: No such file or directory
[root@localhost /]# rpm -qa | grep docker
[root@localhost /]# 

以下幾個rpm包都要卸載

packages:
(1/4): container-selinux-2.107-3.el7.noarch.rpm
(2/4): containerd.io-1.2.10-3.2.el7.x86_64.rpm
(3/4): docker-ce-19.03.3-3.el7.x86_64.rpm
(4/4): docker-ce-cli-19.03.3-3.el7.x86_64.rpm

感謝閱讀,有興趣的小夥伴可以關注我的公衆號DevOps探索之旅,大家一起學習進步
在這裏插入圖片描述

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