Docker 入门基础(一)
简介
- Docker 是一个用于开发、传送和运行应用程序的开放平台。
- Docker 能够将应用程序与基础设施分开,以便快速交付软件。
- 通过利用 Docker 的快速交付、测试和部署代码的方法,可以显着减少编写代码和在生产中运行代码之间的延迟。
- Docker 是基于Go语言实现的云开源项目。
- Docker 通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户APP(或WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
- Docker 解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
对比
Docker(容器虚拟化技术) | 虚拟机 | |
---|---|---|
操作系统 | 与宿主机共享OS | 宿主机OS上运行虚拟机OS |
存储大小 | 镜像小,便于存储与传输 | 镜像庞大(vmdk、vdi等) |
运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 |
移植性 | 轻便、灵活,适应于Linux | 笨重,与虚拟化技术耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
部署速度 | 快速,秒级 | 较慢 |
三要素:
1. 镜像: Docker 镜像就是一个只读模板,可以用来创建Docker容器,一个镜像可以创建很多容器。
2. 容器: Docker 利用容器独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器之前相互隔离、保证安全的平台。可以把容器看作是一个简易版的Linux 环境和运行在其中的应用程序。
3. 仓库: 仓库是集中存放镜像文件的场所,我们把镜像发布到仓库中需要时从仓库中拉取下来就可以了。
总结1:
- Docker 本身是一个容器运行载体或称之为 管理引擎 。
- 我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image 镜像文件。
- 只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看做是容器的模板。
- Docker 根据 image 文件生成容器的实例。同一个 image 文件可以生成多个同时运行的容器实例。
CentOS 7 安装 Docker
参考官方文档:https://docs.docker.com/engine/install/centos/
- 卸载旧版本
(斜杠 \ 为换行符)
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 设置存储库
安装 yum-utils 包(提供 yum-config-manager 实用程序)并设置稳定存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker 引擎
安装最新版本的 Docker Engine 和 containerd
$ sudo yum install docker-ce docker-ce-cli containerd.io
- 启动 Docker
$ sudo systemctl start docker
- 通过运行hello-world 映像验证 Docker Engine 是否已正确安装
$ sudo docker run hello-world
配置阿里云镜像加速
- 注册并登录阿里云账户:https://www.aliyun.com/
- 获取加速器地址链接:选择产品-》容器与中间件-》容器镜像服务 ACR-》管理控制台-》选择镜像工具-》镜像加速器
- 根据操作更改配置镜像加速器
- 启动 Docker 后测试运行 hello-world
总结2:
Docker 是 Client-Server 结构的系统,Docker daemon(守护进程)运行在主机上, Docker client(客户端)通过 Socket 连接访问,daemon 从Client 接受命令并管理运行在主机上的容器。容器,是一个运行时环境。
Docker run 流程如下: