英文文档:https://docs.docker.com/get-started/#images-and-containers
1.什么是Docker
Docker是开发人员和系统管理员使用容器开发,部署和运行应用程序的平台。使用Linux容器部署应用程序称为容器化。容器不是新的技术(基于LXC 的高级容器引擎),但它们用于轻松部署应用程序。
容器的优点:
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:您可以即时部署更新和升级。
- 便携式:您可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:您可以增加并自动分发容器副本。
- 可堆叠:您可以垂直和即时堆叠服务。
2.镜像(image)和容器(containers)
通过运行镜像启动容器。镜像是一个可执行包,包含运行应用程序所需的所有内容 - 代码,运行时,库,环境变量和配置文件。
容器是图像的运行时实例 - 镜像在执行时在内存中为具有状态的镜像或用户进程。您可以使用命令docker ps查看正在运行的容器列表,就像在Linux中一样。
可以把Image比作Java中的类,containers比作对象
3.容器和虚拟机的区别
容器在Linux上本机运行,并与其他容器共享主机的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,使其轻量级。
相比之下,虚拟机(VM)运行一个完整的“客户”操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM提供的环境比大多数应用程序需要的资源更多。
4.基本操作
4.1 运行docker –version并确保您拥有受支持的Docker版本
$ docker --version
4.2 运行docker info 或(不带– 的docker version)以查看有关docker安装的更多详细信息
$ docker info
或
$ docker version
4.3 通过运行简单的Docker镜像hello-world来测试您的安装是否有效
$ docker run hello-world
#以下是输出信息
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
4.4 列出下载到您的计算机的hello-world映像
$ docker image ls
4.5 查看正在运行和运行结束的容器(不加–all只能查看正在运行的容器)
$ docker container ls --all
5.总结
## Docker CLI 命令列表
docker
docker container --help
## 显示Docker版本和信息
docker --version
docker version
docker info
## 运行镜像
docker run hello-world
## 镜像列表
docker image ls
## 容器列表 (运行中, 全部, 已结束)
docker container ls
docker container ls --all
docker container ls -aq
容器化使CI / CD无缝。例如:
- 应用程序没有系统依赖性
- 可以将更新推送到分布式应用程序的任何部分
- 资源密度可以优化。
使用Docker,扩展应用程序的问题在于启动新的可执行文件,而不是运行繁重的虚拟机。