二.Docker安装
Docker的基本组成
整体分为三部分:客户端、服务器、仓库
镜像(Image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务或者项目运行就是在容器中)
容器(Container):
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建。
启动、通知、删除等基本命令
目前就可以把这个容器理解为一个简易轻巧的Linux系统
仓库(Repository):
仓库是存放镜像的地方。
仓库分为公有和私有仓库。(公有:docker hub、阿里云等)
安装
环境准备
CentOS 7 服务器(阿里云服务器)
Xshell 远程连接服务器进行操作
环境查看
# 系统内核是 3.10 以上
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64
# 系统版本
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装
帮助文档
# 1.卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是从国外的
#推荐使用国内的,阿里云十分快
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#建议先更新一下yum软件包索引
yum makecache fast
# 4.安装Docker相关的 docker-ce 社区 deocker-ee 企业
yum install docker-ce docker-ce-cli containerd.io
# 5.启动docker
systemctl start docker
# 6.使用docker version查看是否安装成功
# 7.docker run hello-world
docker run hello-world #开始时没有该镜像,去Pull下载,再运行,直到看到Hello world证明安装成功
# 8.查看一下下载的hello-world镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 weeks ago 13.3kB
提出:过程中遇到错误
这是由于系统检测不到GPG公钥
只需要输入:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
再重新运行即可。
了解:卸载docker
# 1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2.删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
#/var/lib/docker docker的默认工作路径
阿里云镜像加速
1.登录阿里云,找到容器服务
2.找到镜像加速地址(找到对应Centos的)
3.配置使用
回顾hello-world流程
(run的运行流程 )
开始运行–>Docker在本机寻找镜像–>判断本机是都有这个镜像–>
若有,则直接使用这个镜像运行
若无,去Docker Hub上下载–>Docker Hub上是否可以找到–>
若可以找到,下载这个镜像到本地–>使用这个镜像运行
若不可以找到,返回错误,找不到镜像
底层原理
docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
DockerServer接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比虚拟机快?
1.Docker有着比虚拟机更少的抽象层
2.Docker利用的是宿主机的内核,VM需要Guest OS
所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的;而Docker是利用宿主机的操作系统,省略了这个复杂的过程,是秒级别的。