Linux系統(tǒng)安裝 Docker 完整教程
背景
最近接手了幾個(gè)項(xiàng)目,發(fā)現(xiàn)項(xiàng)目的部署基本上都是基于Docker的,幸虧在幾年前已經(jīng)熟悉的Docker的基本使用,沒(méi)有抓瞎。這兩年隨著云原生的發(fā)展,Docker在云原生中的作用使得它也蓬勃發(fā)展起來(lái)。
今天這篇文章就帶大家一起實(shí)現(xiàn)一下在Linux操作系統(tǒng)下Docker的部署過(guò)程,收藏起來(lái),以備不時(shí)之需。當(dāng)然,如果對(duì)Docker感興趣的話,可以直接根據(jù)本文的步驟操作起來(lái)。終有一天你會(huì)享受到Docker的便利與魅力的。
Docker及系統(tǒng)版本
Docker從17.03版本之后分為CE(Community Edition: 社區(qū)版)和EE(Enterprise Edition: 企業(yè)版)。相對(duì)于社區(qū)版本,企業(yè)版本強(qiáng)調(diào)安全性,但需付費(fèi)使用。這里我們使用社區(qū)版本即可。
Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux內(nèi)核版本不低于3.10。
查看Linux版本的命令這里推薦兩種:lsb_release -a或cat /etc/redhat-release。
lsb_release -a查看效果:
[ ~]$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.6.1810 (Core) Release: 7.6.1810 Codename: Core
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
cat /etc/redhat-release查看版本效果:
[~]$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
- 1.
- 2.
顯然,當(dāng)前Linux系統(tǒng)為CentOS7。再查一下內(nèi)核版本是否不低于3.10。
查看內(nèi)核版本有三種方式:
- cat /proc/version
- uname -a
- uname -r
三種形式都可以查看到內(nèi)容版本,比如:
[ ~]$ uname -r 3.10.0-1160.45.1.el7.x86_64
- 1.
- 2.
可以看到,當(dāng)前Linux內(nèi)核版本滿足Docker的需要。
Docker的自動(dòng)化安裝
Docker官方和國(guó)內(nèi)daocloud都提供了一鍵安裝的腳本,使得Docker的安裝更加便捷。
官方的一鍵安裝方式:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 1.
國(guó)內(nèi) daocloud一鍵安裝命令:
curl -sSL https://get.daocloud.io/docker | sh
- 1.
執(zhí)行上述任一條命令,耐心等待即可完成Docker的安裝。
Docker手動(dòng)安裝
手動(dòng)安裝Docker分三步:卸載、設(shè)置倉(cāng)庫(kù)、安裝。
卸載Docker(可選)
第一步,卸載歷史版本。這一步是可選的,如果之前安裝過(guò)舊版本的Docker,可以使用如下命令進(jìn)行卸載:
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
設(shè)置源倉(cāng)庫(kù)
第二步,設(shè)置倉(cāng)庫(kù)。新主機(jī)上首次安裝Docker Engine-Community之前,需要設(shè)置Docker倉(cāng)庫(kù)。此后可從倉(cāng)庫(kù)安裝和更新Docker。
在設(shè)置倉(cāng)庫(kù)之前,需先按照所需的軟件包。yum-utils提供了yum-config-manager,并且device mapper存儲(chǔ)驅(qū)動(dòng)程序需要device-mapper-persistent-data和lvm2。
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
- 1.
- 2.
- 3.
執(zhí)行上述命令,安裝完畢即可進(jìn)行倉(cāng)庫(kù)的設(shè)置。使用官方源地址設(shè)置命令如下:
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
- 1.
- 2.
- 3.
通常,官方的源地址比較慢,可將上述的源地址替換為國(guó)內(nèi)比較快的地址:
- 阿里云:http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo
- 清華大學(xué)源:https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo
倉(cāng)庫(kù)設(shè)置完畢,即可進(jìn)行Docker的安裝。
Docker安裝
執(zhí)行一下命令,安裝最新版本的 Docker Engine-Community 和 containerd。
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 1.
docker-ce為社區(qū)免費(fèi)版本。稍等片刻,docker即可安裝成功。但安裝完成之后的默認(rèn)是未啟動(dòng)的,需要進(jìn)行啟動(dòng)操作。
如果不需要docker-ce-cli或containerd.io可直接執(zhí)行如下命令:
yum install -y docker-ce
- 1.
至此,完成Docker安裝。
Docker啟動(dòng)
啟動(dòng)Docker的命令:
sudo systemctl start docker
- 1.
通過(guò)運(yùn)行hello-world鏡像來(lái)驗(yàn)證是否正確安裝了Docker Engine-Community。
// 拉取鏡像 sudo docker pull hello-world // 執(zhí)行hello-world sudo docker run hello-world
- 1.
- 2.
- 3.
- 4.
如果執(zhí)行之后,控制臺(tái)顯示如下信息,則說(shuō)明Docker安裝和啟動(dòng)成功:
[root@iZ8vb8pfb2awsz4qy7vm7qZ ~]# docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. ……
- 1.
- 2.
- 3.
- 4.
- 5.
除了啟動(dòng)Docker,一些其他啟動(dòng)相關(guān)的命令:
- 守護(hù)進(jìn)程重啟:systemctl daemon-reload
- 重啟Docker服務(wù):systemctl restart docker / service docker restart
- 關(guān)閉Docker服務(wù):docker service docker stop / docker systemctl stop docker
刪除Docker
刪除安裝包:
yum remove docker-ce
- 1.
刪除鏡像、容器、配置文件等內(nèi)容:
rm -rf /var/lib/docker
- 1.
Docker其他常見(jiàn)命令
安裝完成Docker之后,這里匯總列一下常見(jiàn)的Docker操作命令:
- 搜索倉(cāng)庫(kù)鏡像:docker search 鏡像名
- 拉取鏡像:docker pull 鏡像名
- 查看正在運(yùn)行的容器:docker ps
- 查看所有容器:docker ps -a
- 刪除容器:docker rm container_id
- 查看鏡像:docker images
- 刪除鏡像:docker rmi image_id
- 啟動(dòng)(停止的)容器:docker start 容器ID
- 停止容器:docker stop 容器ID
- 重啟容器:docker restart 容器ID
- 啟動(dòng)(新)容器:docker run -it ubuntu /bin/bash
- 進(jìn)入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推薦使用后者。
更多的命令可以通過(guò)docker help命令來(lái)查看。
小結(jié)
本篇文章帶大家從頭到尾在Linux操作系統(tǒng)上安裝了Docker,以及介紹了如何啟動(dòng)、驗(yàn)證及常見(jiàn)的命令。后面如果有機(jī)會(huì)話,再大家了解一下如何制作Docker鏡像,用于CI/CD發(fā)布當(dāng)中。