Docker学习笔记
- docker的作用
- docker的基本组成
- 安装docker
- 阿里云镜像加速
- run的流程和docker原理
docker的思想来自于集装箱。
核心思想: 隔离
docker可以通过隔离机制将服务器利用到极致。
虚拟机:在windows中装一个Vmware,通过这个软件可以虚拟出一台或多台电脑,笨重。
虚拟机也是属于虚拟化技术,docker容器技术,也是一种虚拟化技术。
docker,隔离,(最核心的环境,4m+jdk+mysql)十分的小巧,运行镜像就可以了。
docker的作用
·虚拟机技术缺点:
1.资源占用十分多
2.冗余步骤多
3.启动很慢
·容器化技术:
容器化技术不是模拟的一个完整的操作系统
·docker和虚拟机的不同:
·传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
·容器的应用直接运行在宿主机的内核,容器是没有自己的内核的,也没有虚拟我们的 硬件,所以就轻便了。
·每个容器间是互相隔离的,每个容器内都有一个属于自己的文件系统,互不影响。
DevOps(开发、运维)
更快速的交付和部署。
传统:一堆帮助文档、安装程序
Docker:一键镜像发布测试、一键运行
更便捷的升级和扩缩容。
使用了docker之后,我们部署应用就和搭积木一样。
项目打包为一个镜像,扩展服务器A,服务器B。
更简单的系统运维
在容器化之后,开发、测试环境高度一致
更高效的计算资源利用
docker是内核级别的虚拟化,可以在一个物理机上运行很多容器实例,服务器的性能可以被压榨到极致。
docker的基本组成
镜像(image):
docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或项目运行就是在容器中的)。
容器(contanier):
docker利用容器技术,独立运行一个或一组应用,通过镜像来创建的。
启动,停止,删除,基本命令。目前可以将容器理解为一个简易的Linux系统。
仓库(repository):
仓库就是存放镜像的地方。
仓库分为共有仓库和私有仓库。
docker hub(默认是国外的)
阿里云等有容器服务(配置镜像加速)
安装docker
查看云服务器环境。
系统版本:
[root@tian ~]# cat /etc/os-release
NAME="Alibaba Cloud Linux"
VERSION="3 (Soaring Falcon)"
ID="alinux"
ID_LIKE="rhel fedora centos anolis"
VERSION_ID="3"
PLATFORM_ID="platform:al8"
PRETTY_NAME="Alibaba Cloud Linux 3 (Soaring Falcon)"
ANSI_COLOR="0;31"
HOME_URL="https://www.aliyun.com/"
进入[docker官网]
卸载旧版本docker:
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
需要的安装包:
yum install -y yum-utils
设置镜像的仓库:
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 makecache
安装docker相关的 docker-ce社区 ee 企业版
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
一路y就安装成功啦!
启动docker:
systemctl start docker
使用docker -version查看是否安装成功。
hello world!
docker run hello-world
查看下载的镜像:
docker images
docker卸载:
1.卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
2.删除资源
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://95xgetrg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
run的流程和docker原理
底层原理:
docker是一个Client-Sever结构的系统,docker的守护进程运行在主机上,通过Socket从客户端进行访问。
DockerSever接收到Docker-Client的指令,就会执行这个命令!
docker为什么比vm块?
1.docker有着比虚拟机更少的抽象层。
2.docker利用的是宿主主机的内核,vm需要的是Guest Os。
所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统的内核,避免引导。虚拟机时加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。
[原始课程]