Docker 快速开始
1. 概念
对于开发人员和系统管理员来说,Docker是一个使用容器开发、部署和运行应用程序的平台。使用Linux容器部署应用程序称为容器化。容器并不新鲜,但是将它们用于轻松部署应用程序却很新鲜。
容器化越来越受欢迎,是因为容器有以下特点:
- 灵活性:即使是最复杂的应用程序也可以被容器化
- 轻量级:容器利用并共享主机内核
- 可互换的:你可以实时部署更新和升级
- 可移植性:你可以在本地构建、部署到云,并在任何地方运行
- 可伸缩:你可以增加并自动分发容器副本
- 可叠加:你可以垂直地、动态地叠加服务
2. 镜像与容器
image(译:镜像)
一个镜像是一个可执行包,它包含运行应用程序所需的所有内容,包括代码、运行时环境、库、环境变量、配置文件。通过运行镜像类启动一个容器。
container(译:集装箱;容器)
容器是镜像的运行时实例。你可以使用docker ps命令看到正在运行的容器列表,就像在Linux中一样。
(PS:镜像与容器的关系,就好比是类与对象的关系一样。镜像是静态的,当镜像运行的时候它就是一个容器)
3. 容器与虚拟机
容器在Linux本地运行,并与其他容器共享主机的内核。它以独立的进程运行,不占用比任何其他可执行程序更多的内存,使其轻量级。相反,虚拟机(VM)运行一个成熟的“客户”操作系统,通过管理程序对主机资源进行虚拟访问。一般来说,VMs提供的环境比大多数应用程序所需的资源要多。
4. 安装Docker
就像我们要使用mysql命令之前必须先安装mysql服务一样。Docker作为服务运行,我们也必须先安装它,这里我们安装Mac版。
https://hub.docker.com/search/?type=edition&offering=community
Docker有社区版和企业版,由于笔者的机器限制,此处只能选择安装 “Docker Desktop for Mac”
https://hub.docker.com/editions/community/docker-ce-desktop-mac
注册账号,安装,安装成功并登录后就可以使用了
接下来,测试一下刚才安装的Docker
docker version docker run hello-world docker image ls docker container ls --all docker container --help
localhost:~ chengjiansheng$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest fce289e99eb9 3 months ago 1.84kB localhost:~ chengjiansheng$ docker container ls --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9c306fa88b2 hello-world "/hello" 19 minutes ago Exited (0) 19 minutes ago elegant_heisenberg
5. 备忘单
6. 文档
https://docs.docker.com/get-started/