1 Docker概述
【1】解决项目的生产环境配置(将项目+运行环境打包进行发布);
【2】打包每个项目并带上项目的镜像 ----> Docker仓库;
【3】Docker核心思想:应用之间相互隔离,将服务器利用到极致;
2 Docker的历史
【1】2010年开始发源......2013年Docker开源......2014年Docker1.0发布
【2】相对虚拟机十分轻巧;
虚拟化技术:
[1]虚拟机:1个原生镜像占大量内存(10多个G),很笨重,启动时间慢!
[2]Docker:只用核心环境(几M内存,轻巧)+项目运行环境,启动时间快!
【3】Docker是基于Go语言开发的开源项目!
3 Docker能做什么
比较Docker与虚拟机技术的不同:
【1】传统虚拟机相当于是虚拟化一套硬件,运行了一个完整的操作系统,然后在这个系统上安装和运行软件;
【2】docker的应用是直接运行到宿主机上,容器没有自己的内核,多个容器是共用宿主机的内核,每个容器之间相互隔离,每个容器都有自己的文件系统,互不影响;
【3】docker是一个Server-Client结构的系统,docker采用守护进程运行在主机上,通过socket从客户端访问!docker-server接收到docker-client的指令后就会执行这个命令!
DevOps(开发、运维):
【1】应用更快的交付与部署;
【2】更快捷的升级与扩容;
【3】更简单的系统运维;
【4】更高效的计算资源利用;
4 Docker基本组成
镜像(image)
:docker镜像好比一个模板,通过这个模板去创建容器服务(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行都是在容器中);
容器(container)
:通过容器技术,独立运行一个或者一组应用,通过镜像来创建的;
仓库(repository)
:存放镜像的地方;
5 Docker的安装(基于Ubuntu18.04)
[1]环境查看:
查看内核:$ uname -r
查看系统版本:$ cat /etc/os-release
[2]卸载旧版本:$ sudo apt-get remove docker docker-engine docker.io containerd runc
[3]安装环境(使用repository安装):
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
[4]根据docker引擎:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
[5]测试是否安装成功(hello-world镜像测试):
$ sudo docker run hello-world
$ sudo docker images