1.Docker是什么
Docker是在Linux容器里运行的应用的开源工具,是一种轻量级的“虚拟机”。诞生于2013年,最初的发起者是dotCloud公司,后来改名为Docker lnc,专注于Docker相关技术和产品的开发。Docker项目目前已经加入了Linux基金会,全部开源代码均在https://github.com/docker上进行相关维护,官网地址为https://www.docker.com/,有相关文档可以参考。现在Docker与OpenStack同为最受欢迎的云计算开源项目。
2.Docker和虚拟机的区别
作为一种轻量级的虚拟化方式,Docker与传统的虚拟机相比具有显著的优势。
Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多;Docker核心解决的问题时利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户多更的计算资源,所以Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还可以通过Dockerfile配置文件支持灵活的自动化创建和部署。
3.Docker的核心概念及安装
1.镜像
Docker的镜像(Image)是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模板。比如,一个镜像可以是一个完整的Centos操作系统环境,称为一个Centos镜像;可以是一个安装了Mysql的应用程序,称为一个Mysql镜像,等等。
Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。
2.容器
Docker的容器(Container)是从镜像创建的运行实例。它可以启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环境,Docker利用容器来运行和隔离应用。
3.仓库
Docker仓库(Repository)是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private),这样一来当下次要在另一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。
仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一类镜像,并且使用不同的标签(Tag)来区分它们。目前最大的公共仓库是Docker Hub,存放了数量庞大的镜像供用户下载使用。
4.安装Docker
4.1使用YUM方式安装Docker
YUM的全称是Yellow DogUpdater Modified。利用YUM方式可以很方便的添加、删除和更新Linux系统的程序包,并且能够自动解决包的依赖性问题。使用YUM方式也能够方便的管理大量的系统更新问题。一般使用YUM方式需要连接外部的网络。
(1)为了验证虚拟机是否可以访问外部的网络,输入以下命令访问百度网页。
[root@Linux02 ~]# ping www.baidu.com
(2)执行以下命令使用YUM方式安装Docker。
[root@Linux02 ~]# yum -y install docker
(3)执行以下命令启动Docker的服务。
[root@Linux02 ~]# systemctl start docker.service
[root@Linux02 ~]# systemctl enable docker.service
(4)执行以下命令确定Docker的版本。
[root@Linux02 ~]# docker version
4.2使用二进制包方式安装Docker
使用YUM方式安装Docker非常简单,但需要连接外部的网络。而在实际的企业生产环境中,通常不能直接访问外部网络。这时可以使用Docker官方提供的二进制包进行Docker的离线安装。
(1)安装wget下载工具。
[root@Linux01 ~]# yum -y install wget
(2)下载Docker安装包。
[root@Linux01 ~]# wget https://download.docker.com/linux/static/stable/x
86_64/docker‐20.10.9.tgz
(3)使用tar命令解压缩Docker二进制包。
[root@Linux01 ~]# tar ‐zxvf docker‐20.10.9.tgz
(4) 查看Docker二进制包提供的执行命令。
[root@Linux01 ~]# ls docker
(5)将Docker的可执行命令复制到"/usr/bin"目录下。
[root@Linux01 ~]# cp docker/* /usr/bin
(6)执行以下命令启动Docker服务,启动成功后输出日志信息。
[root@Linux01 ~]# /usr/bin/dockerd
(7)新开启一个命令窗口,执行以下语句查看Docker的版本信息(包括Docker客户端与Docker服务端的版本)。
[root@Linux01 ~]# /usr/bin/docker version
(8)在"/etc/systemd/system/docker.service"文件中输入以下内容。
[root@Linux01 ~]# cat /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network‐online.target firewalld.service
Wants=network‐online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill ‐s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on‐failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi‐user.target
(9)在创建"/etc/systemd/system/docker.service"文件后,需要给该文件添加可执行权限。
[root@Linux01 ~]# chmod +x /etc/systemd/system/docker.service
(10)启动Docker,并设置Docker为开机模式。
[root@Linux01 ~]# systemctl start docker.service
[root@Linux01 ~]# systemctl enable docker.service
至此,通过使用二进制包完成了Docker安装。不管使用YUM方式还是二进制包方式,在安装完成后,Docker的使用方式是一样的。但在使用之前,最好验证一下Docker的环境。
4.4 验证Docker环境
在命令行Xshell中,使用"docker info"命令可以查看Docker运行状态的详细信息。
[root@Linux01 ~]# docker info
通过使用系统服务命令可以查看Docker的运行状态。执行以下命令,可以查看Docker服务的状态。
[root@Linux01 ~]# systemctl status docker.service
4.5 【实战】在Docker中部署一个应用
在成功安装Docker后,就可以通过镜像来创建容器,从而运行应用。下面将演示如何在Docker中,通过使用Nginx镜像来部署一个应用,并在浏览器中访问它。
下面是具体的步骤
(1)在镜像仓库中搜索Nginx镜像,如图所示。其中,OFFICAL列中标有【OK】的镜像是Docker官方提供的镜像。
[root@Linux01 ~]# docker search nginx
(2)通过以下命令从镜像仓库拉取Nginx的镜像到本地。
[root@Linux01 ~]# docker pull nginx
(3)使用"docker images"命令查看本地的镜像信息。
[root@Linux01 ~]# docker images
(4)执行以下命令将使用镜像来创建Nginx容器。
[root@Linux01 ~]# docker run -d -p 1234:80 nginx
其中的参数说明如下:
- -d:启动容器的守护进程。
- -p:将容器内的80端口映射到宿主机的1234端口,这样就可以通过宿主机访问容器内部了。
(5) 在容器创建并启动成功后,可以查看Docker的容器信息。
[root@Linux01 ~]# docker ps
(6)打开浏览器访问"https://192.168.56.10:1234",将打开Nginx的首页。
(7)如果要终止和销毁容器,则执行以下命令。
[root@Linux01 ~]# docker rm -f 397944e48313
(8)再次查看容器信息,可以看到没有任何运行的容器信息。