Docker的基本组成
镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像=====>run====>tomcat01容器(提供服务器)。
容器(container):
docker利用容器技术,独立运行一个或者多个组应用,通过镜像来创建
启动,停止,删除,基本命令!
目前就可以把这个容器理解为一个简易的linux系统
仓库(repository):
仓库就是存放镜像的地方;
仓库分为公有仓库和私有仓库;
docker Hub(默认是国外的)
阿里云…都有容器服务器(配置镜像加速!)。
什么是docker?
1.docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
2.docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。
3.容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。
为什么容器越来越受欢迎
因为容器是:
1.灵活:即使是最复杂的应用也可以集装箱化。
2.轻量级:容器利用并共享主机内核。
3.可互换:您可以即时部署更新和升级。
4.便携式:您可以在本地构建,部署到云,并在任何地方运行。
5.可扩展:您可以增加并自动分发容器副本。
6.可堆叠:您可以垂直和即时堆叠服务。
docker为什么比vm快?
1.东侧客人有着比虚拟机更少的抽象层;
2.docker利用的是宿主机的内核(秒级),vm需要Guest os(操作系统的内核;分钟级)。
环境准备:
1.centOS7以上系统
2.系统内核3.10以上
通过命令:
uname -r #查看系统内核
cat /etc/os-release #查看系统版本
docker安装步骤
(可通过docker官网查看https://docs.docker.com/engine/install/centos/):
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 makecache fast
4.安装最新的docker相关的依赖。 docker-ce社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io
5.启动docker
systemctl enable docker --now
6.使用命令查看docker版本:
docker version
7.测试hello world
docker run hello-word
8.查看一下下载的这个hello-world镜像是否存在
docker images
9.卸载docker
yum remove docker-ce docker-ce-cli containerd.io #卸载依赖
rm -rf /var/lib/docker #删除资源
rm -rf /var/lib/containerd #删除资源
配置阿里云镜像加速
(1).登录阿里云找到容器服务
(2).找到镜像加速地址
(3).配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9obt1hyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker run的流程原理
12.docker是怎样工作的。
docker 是一个client-server结构的系统,docker的守护进行运行在主机上,通过socket从客户端访问,
dockerserver接受到docker-client的指令,就会执行这个命令!