Docker 安装
Docker的基本组成
- 镜像(Image): docker镜像, 就相当于是镜像模板, 比如官方镜像Ubuntu:16.04就包含了完整的一套Ubuntu16.4最小系统 可以通过镜像来创建一个或多个容器.
- 容器(Container): 镜像和容器的关系, 就像面向对象程序设计种的类和对象一样, 镜像是静态的定义, 容器时镜像运行时的实体, 容器可以被创建 启动 停止 删除 暂停等.
- 仓库(Repository): 仓库可看成一个代码控制中心, 用来保存镜像. 仓库分为公有仓库和私有仓库. 其中DockerHub就是docker官方的仓库地址
安装
docker官方文档 我的系统是 ubuntu 所以接下来的教程都是在 ubuntu 中安装的
- 卸载旧的版本
sudo apt-get remove docker docker-engine docker.io containerd runc
- 更新apt软件源并允许apt通过HTTPS使用仓库
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 设置Docker稳定版软件源
# 官方源, 国内安装比较慢推荐使用阿里云的
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 阿里云软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 添加仓库后, 更新apt源索引 并且安装最新的 docker-ce 社区版
- 安装时最好设置一下阿里云的镜像会快很多 阿里云镜像源
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 启动docker
sudo service docker start
- 使用 docker version 判断是否安装成功
运行 hello-world
使用 docker run hello-world
- 上图可以看到第一步运行 docker run hello-world 命令后先在本来没有在本地找到 hello-world 镜像
- 第二步开始去远程仓库拉去 hello-world 镜像, 拉去完成之后返回一串签名信息
- 第三步输出了 Hello from Docker! 表示已经完成了
docker run 命令详细分析
查看下载的镜像
docker images
卸载 docker
- 卸载Docker Engine, CLI和Containerd软件包
sudo apt-get purge docker-ce docker-ce-cli containerd.io
- 手动删除docker的资源 比如: images, containers, volumes
sudo rm -rf /var/lib/docker
Docker底层原理
Docker是怎么工作的?
- Docker是一个 Client - Server 结构的系统, Docker的守护进程运行在主机上, 通过 Socket从客户端访问
- DockerServer 接收到 DockerClient的指令, 就会执行这个命令
Docker为什么比虚拟机快
- Docker有着比虚拟机更少的抽象层
- Docker利用的是宿主机的内核, 而 vm 需要 Guest OS.
- 所以说新建一个容器的时候 docker需要像虚拟机一个重新加载一个操作系统内核避免引导, 虚拟机加载GuestOS是分钟级的. 而docker是里面宿主机的操作系统, 省略了复杂的过程是秒级的.