本文記錄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
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探索之旅
,大家一起學習進步