Docker学习-Docker概念和基本操作

英文文档: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提供的环境比大多数应用程序需要的资源更多。

Container stack example Virtual machine stack example


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,扩展应用程序的问题在于启动新的可执行文件,而不是运行繁重的虚拟机。

猜你喜欢

转载自blog.csdn.net/qq_32475739/article/details/80946445