初识Docker

231 阅读3分钟

初识Docker

Docker的诞生

Docker的首秀,是2013年3月15日的一个5分钟的”闪电演讲“,Solomon Hykes(dotCloud 公司,也就是 Docker 公司的创始人)首次向全世界展示了 Docker 技术

Docker的形态

目前使用Docker基本上有两个选择:Docker Desktop 和 Docker Engine

Docker Desktop

是专门针对个人使用而设计的,支持 Mac 和 Windows 快速安装,具有直观的图形界面,还集成了许多周边工具,方便易用。

不推荐使用:

  1. 它是商业产品,有一些自己的、非通用的东西,不利于后续的Kubernetes学习;
  2. 只是对个人学习免费,受条款限制不能商用,在日常工作中难免会“踩到雷区”。

Docker Engine

完全免费,但只能在Linux上运行,只能命令行操作,缺乏辅助工具,需要自己动手DIY运行环境。

推荐使用:

血脉最纯正,各个公司在生产环境中实际使用的Docker产品,毕竟机房里99%的服务器跑的都是Linux。

Docker 的安装

  1. 安装docker.io
sudo apt install -y docker.io #安装Docker Engine
  1. 启动Docker的后台服务
sudo service docker start         #启动docker服务
sudo usermod -aG docker ${USER}   #当前用户加入docker组

第一个 service docker start 是启动 Docker 的后台服务,第二个 usermod -aG 是把当前的用户加入 Docker 的用户组。这是因为操作 Docker 必须要有 root 权限,而直接使用 root 用户不够安全,加入 Docker 用户组是一个比较好的选择,这也是 Docker 官方推荐的做法。

上面的三条命令执行完之后,我们还需要退出系统(命令 exit ),再重新登录一次,这样才能让修改用户组的命令 usermod 生效。

验证Docker

可以使用命令 docker versiondocker info,来验证Docker

docker version

docker version # 会输出 Docker 客户端和服务器各自的版本信息

image.png

docker info

docker info # 显示当前 Docker 系统相关的信息,例如 CPU、内存、容器数量、镜像数量、容器运行时、存储文件系统等

image.png

Docker的使用

docker ps

显示当前环境下运行的容器,可以类比Linux下的ps命令

image.png

docker pull

从外部的镜像仓库(Registry)拉取一个 busybox 镜像(image),你可以把它类比成是 Ubuntu 里的“apt install”下载软件包

docker pull busybox      #拉取busybox镜像

image.png

docker images

列出当前 Docker 所存储的所有镜像

image.png

docker run

从某个镜像中启动容器

docker run busybox echo hello world

这个命令会在我们的终端上,输出“hello world”

image.png

docker ps -a

可以查看已经运行完毕的容器

image.png

Docker的架构

image.png

Docker client 可以通过 build、pull、run等命令向 Docker daemon 发送请求,而 Docker daemon 则是容器和镜像的“大管家”,负责从远端拉取镜像、在本地存储镜像,还有从镜像生成容器、管理容器等所有功能。

可以直接使用一个命令来查看Docker client 到 Docker daemon 再到 Registry 的详细工作流程。

docker run hello-world

image.png

总结:

  1. 容器技术起源于 Docker,它目前有两个产品:Docker Desktop 和 Docker Engine,我们的课程里推荐使用免费的 Docker Engine,它可以在 Ubuntu 系统里直接用 apt 命令安装。
  2. Docker Engine 需要使用命令行操作,主命令是 docker,后面再接各种子命令。
  3. 查看 Docker 的基本信息的命令是 docker version 和 docker info ,其他常用的命令有 docker ps、docker pull、docker images、docker run。
  4. Docker Engine 是典型的客户端 / 服务器(C/S)架构,命令行工具 Docker 直接面对用户,后面的 Docker daemon 和 Registry 协作完成各种功能。

《极客时间-Kubernetes入门实战课》学习笔记 Day2

极客课程分享