Docker 开源的
应用容器引擎
Go语言开发的
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中
,然后发布到任何流行的Linux机器上,也可以实现虚拟化
Docker三个基本概念
镜像(Image)
Docker 镜像是一种轻量级、独立的、可执行的软件包,它包含了运行某个软件所需的所有元素。镜像是不可变的,创建后不能更改,但可以用作构建新镜像的基础。
比喻:
想象一下,它就像一本食谱(Recipe),详细列出了如何制作某道菜。这个食谱包含了所有的步骤和所需的食材。
食谱:代表 Docker 镜像
所需的食材和步骤:代表应用程序、依赖库、配置文件等
有了这本食谱(Docker 镜像),你和别人都能按照同样的步骤做出一样的菜。
容器(Container)
Docker 容器是基于镜像创建的一个运行实例,它包含了应用程序及其所有依赖项,运行在一个完全隔离的环境中。容器是动态的,可以启动、停止、移动和删除。
比喻:
容器就像是你根据食谱(Docker 镜像)做出来的那道实际的菜。你可以吃这道菜,也可以把它装进饭盒里带走。
实际的菜:代表 Docker 容器
装进饭盒里带走:代表容器的便携性和可移植性
有了这道菜(Docker 容器),你可以随时享用,也可以带到任何地方,和别人分享。
仓库(Repository)
集中存放镜像文件的场所
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
Docker 镜像是用于创建 Docker 容器的模板
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker命令
基础命令
查看版本信息
docker version
显示详细信息
docker info
从仓库拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# 例如:
docker pull ubuntu:latest
列出本地存储的镜像
docker images
删除一个或多个镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 例如:
docker rmi ubuntu:latest
列出所有运行中的容器
docker ps [OPTIONS]
# 列出所有容器(包括停止的容器):
docker ps -a
运行一个新的容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]