1、概念
往常需要一个项目顺利运行在服务器上,首先需要在服务器上配置众多的环境来让项目运行,配置环境非常的麻烦,且应用不易升级,不然导致项目运行出现问题,就算成功部署项目,该项目的端口或依赖也可能与其他项目发生冲突,导致项目运行出现问题,而Docker的出现正解决了这一个问题,因为Docker是利用容器技术实现的,正能隔离每个项目,让每个项目独立运行。
2、传统虚拟机和Docker的区别
(1)传统虚拟机的项目部署结构和使用容器技术的Docker的项目部署结构
传统部署结构
容器技术部署结构
(2)Docker比虚拟机拥有更少的抽象层:
虚拟出出一台虚拟机需要主机下载镜像,然后利用虚拟技术和这个镜像来虚拟出一台主机,则虚拟机运行在主机上,主机拥有自己的操作系统(GuestOS),而虚拟机也拥有自己的操作系统(GuestOS);而Docker利用的是主机的操作系统,省略了虚拟操作系统的过程,所以说Docker比虚拟机少了一层抽象层(GuestOS),因此Docker的效率也就比虚拟机更高。
3、Docker的基本组成
(1)镜像(image)
docker镜像就像是一个模板,可以通过镜像来创建多个容器,而最终项目或服务就运行在容器中。
(2)容器(container)
Docker利用容器技术,能做到独立运行一个或一组应用,容器通过镜像来创建获得,拥有启动、停止、删除等基本命令。
(3)仓库(repository)
仓库就是存放Docker镜像的地方,仓库又分为公有仓库和私有仓库,著名的公有仓库有DockerHub(国外的)、阿里云、华为云等
4、Docker工作原理
Docker是一个Clinet-Server(客户端-服务器)结构的系统,运行在主机上,通过socket从docker-client(客户端)访问dockerserver(Docker服务),docker-server(Docker服务)接收到docker-client(客户端)的指令时,dockerserver(Docker服务)就会执行这个命令。
5、安装Docker
(1)登录Docker官网:https://www.docker.com/,然后点击跳转帮助文档页面
(2)点击Download and install进入下载页面
(3)点击进入Linux版本的下载页面
(4)在菜单栏找到名为Docker Engine(Docker镜像)的菜单
(5)展开Docker Engine菜单,并找到install on CentOS菜单,点击进入关于CentOS如果下载并安装Docker的帮助文档。 (这里需要根据自己的系统来选择相应的帮助文档来根据里面的教程来下载Docker,我这里只拿比较多人用的CentOS来做示范)
(6)复制粘贴帮助文档里的命令,卸载旧版本的Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
此外还有其他命令来卸载Docker,卸载失败的可以试试这两条命令
yum -y remove docker
dnf -y remove docker
(7)如果之前没下载过Docker,这里会显示没有找到旧版本去删除
(8)帮助文档会给你三种方法去安装Docker
百度翻译:
(9)这里我只示范第一种方法来安装Docker,先安装yum-utils工具包(yum-utils工具包提供yum-config-manager程序)
yum install -y yum-utils
效果图(已安装且是最新版本的效果图):
(10)设置下载Docker的仓库源:
设置下载Docker的仓库源(用于指定我们将从哪里下载Docker的软件包,下载Docker的仓库源不要用Docker官方的,因为服务器在国外,下载Docker时网速会比较慢,所以使用国内的仓库源就行,我这里使用的是阿里云的仓库源来下载Docker,不设置仓库源将下载不了Docker)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
效果图:
路径为/etc/yum.repos.d/的文件夹里多出了一个docker-ce.repo文件
(11)安装Docker相关的东西(这里这条命令安装的是最新的Docker)
#docker-ce表示下载的是社区版的docker引擎
#docker-ce-cli表示下载社区版的docker引擎的命令行界面
#containerd.io表示下载LXC-Linux容器将,作用是将Docker与OS分离,还为非Docker容器管理器提供容器服务
#docker-compose-plugin表示下载的是一个名为docker-compose的一个管理多容器的工具
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
效果图:
(12)安装其他版本:
上面那种方式安装的是最新版的Docker,不想安装最新版Docker的可以根据以下步骤安装指定版本的Docker
以下命令用来查看Docker的版本
yum list docker-ce --showduplicates | sort -r
效果图:
yum install docker-ce-<版本号> docker-ce-cli-<版本号> containerd.io docker-compose-plugin
以下载版本为20.10.9的为例:
yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io docker-compose-plugin
(13)启动Docker
输入以下命令启动Docker
systemctl start docker
(14)查看Docker的版本信息
输入以下命令查看Docker的信息
docker version
效果图:
(15)运行hello-world镜像(注意!!!这里执行run命令后如果在本机上找不到名为hello-world的镜像,就会到DockerHub上找名为hello-world的镜像,若能在DockerHub上找到名为hello-world的镜像,就执行下载hello-world镜像的操作,若没找到hello-world镜像,则会报错)
(16)用以下命令查看主机上所有的已下载好的docker镜像
docker images
效果图:
#标题解释
REPOSITORY TAG IMAGE ID CREATED SIZE
镜像的仓库源 镜像的标签 镜像的id 镜像的创建时间 镜像的内存大小
其他:
1、卸载Docker:
(1)卸载Docker的依赖
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
(2)删除文件夹
rm -rf /var/lib/docker
rm -rf /var/lib/containerd