开始,第一部分:方向和启动
1:方向
2:容器
3:服务
4:swarm集群管理工具
5:堆栈
6:部署你的应用
欢迎!因为你想学docker我们感到十分激动,The Docker Get Started Tutorial 教会你如何:
1:启动你的docker环境
2:创建一个镜像并在一个容器中运行
3:缩放你的app来运行组合容器
4:通过一个集群分布式部署你的app
5:添加一个后端数据库的栈服务
6:部署你的应用变为产品
docker 概念
docker 是一个使开发者和系统管理员使用容器,开发,部署,运行的一个平台。使用Linux系统容器来部署应用的叫做集装箱技术。容器不是新的,但是他们部署应用的简易性却是新的。
集装箱技术日益普及,inward容器具有以下特性:
灵活性:即使是最复杂的应用也可以被集装箱装
轻量性:容器可以在共享内核中起到杠杆作用
内在可改变性:你可以随性地部署更新和升级
轻便性:你可以本地编译,在云上部署并且运行在任意机器上
可扩展性:你可以增加并且自动的分配容器的副本
堆叠性: 你可以将服务虚拟的,随心所欲地堆积起来
镜像与容器
运行一个镜像就可以把容器启动起来。一个镜像是一个包含了运行一个应用所需的每一样东西的可执行包,包括代码,运行时间,依赖包,环境变量,配置文件。
一个容器是一个镜像运行时实例,即当一个镜像在内存中执行的时候会成为的实例(例如,一个带有状态或者用户进程的镜像)。使用命令docker ps, 你可看到一系列正在运行的容器,如同你在Linux操作的一样。
容器和虚拟化机器
容器天然地可在linux上运行并且和其他容器共享主机的内核。它运行在独立的进程,小于其他可运行进程占用的内存,使得它轻量化。
相反,一个虚拟机运行一个完备的访客操作系统,使用一个系统管理程序来获取主机资源。总体来说,比其他应用提供了一个拥有更多资源的环境。
准备好你的docker环境
在支持的平台上下载安装一个稳定的 Docker Community Edition (CE) 或者 Enterprise Edition (EE) 版本。
对于完整的Kubernetes 集合
- Kubernetes on Docker Desktop for Mac is available in 17.12 Edge (mac45) or 17.12 Stable (mac46) and higher.
- Kubernetes on Docker Desktop for Windows is available in 18.02 Edge (win50) and higher edge channels only.
检测docker的版本
- 运行docker --version 然后查看是否是一个被支持版本。
- docker --version
- 运行docker info 或者docker version 来查看关于你的docker安装的更多信息。
- docker info
- 为了避免权限错误和使用sudo,在docker用户组中添加你的用户,了解更多点击这里。
测试docker的安装。
- 通过运行一个简单的docker镜像来测试你的安装是否成功,hello-world;
- docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull completeDigest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
- 列举被下载到你的电脑上的hello-world镜像
- docker image is
- 列举由hello-world镜像产生的容器,这个容器存在于展示消息之后。如果容器正在运行中,你不需要添加--all的参数
- docker container ls (--all)
- 回顾一下命令
## List Docker CLI commands
docker
docker container --help
## Display Docker version and info
docker --version
docker version
docker info
## Execute Docker image
docker run hello-world
## List Docker images
docker image ls
## List Docker containers (running, all, all in quiet mode)
docker container lsdocker container ls --all
docker container ls -aq
第一部分的总结
容器化使得 ci/cd 无缝连接,例如:
应用没有系统依赖
更新可以被推送到任何一个分布式应用
资源的密度可以被优化
使用docker,生成一个新的可执行的程序关键在于可以缩放你的应用,不用运行笨重的虚拟主机。