目录
Docker的基本组成
镜像(image)
Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务
比如:Tomcat镜像==>run==>Tomcat容器(提供服务器)
通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)
容器(container)
Docker利用容器技术,独立运行一个或者是一组应用,都是通过镜像来创建的
目前可以把容器理解为一个简易的Linux系统
仓库(repository)
仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库
Docker Hub(默认是国外的)
Docker的安装
环境准备
1.Centos 7 及以上版本
2.使用Xshell连接远程服务器进行操作
环境查看
# 系统内核
[root@docker ~]# uname -r
4.18.0-193.el8.x86_64
# 系统版本
[root@docker ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)
开始安装
查看Docker官网的帮助文档:
1.卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.下载需要的安装包
yum install yum-utils -y
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 # 建议安装国内的
4.安装docker ——Install Docker Engine
# docker-ce 社区版 docker-ee 企业版
yum install docker-ce docker-ce-cli containerd.io -y
5.启动docker
systemctl start docker
6.设置docker开机自启
systemctl enable docker
7.使用 docker version 或 docker -v 测试是否安装成功
[root@docker ~]# docker version
Client: Docker Engine - Community
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:53:39 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d8
Built: Fri Jul 30 19:52:00 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.9
GitCommit: e25210fe30a0a703442421b0f60afac609f950a3
runc:
Version: 1.0.1
GitCommit: v1.0.1-0-g4144b63
docker-init:
Version: 0.19.0
GitCommit: de40ad0
7.测试运行 hello-world 程序
docker run hello-world
8.查看下载的hello-world镜像
docker images
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的默认工作路径
Docker的底层原理
Docker是如何工作的
Docker是一个 Client - Server 的结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问。
Dokcer-Server接收到Docker-Client的指令,就会去执行这个命令。
Docker为什么比虚拟机快
- Docker有着比虚拟机更少的抽象层。
- Docker利用的是宿主机的内核,而VM需要的是Guest OS。
所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机加载的是Guest OS,属于分钟级;而docker是利用宿主机的操作系统,省略了这个复杂的过程,属于秒级。