Docker学习——基础知识(一):概述与环境配置

概述(Docker concepts)

Docker是开发人员和系统管理员使用容器开发部署运行应用程序的平台。使用Linux容器部署应用程序称为容器化

容器化越来越受欢迎,因为容器有以下特点:

  • 灵活:即使是最复杂的应用也可以容器化。
  • 轻量级:容器利用并共享主机内核。
  • 易替换:您可以即时部署更新和升级。
  • 可移植:您可以在本地构建,部署到云,并在任何地方运行。
  • 可扩展:您可以增加并自动分发容器副本。
  • 可堆叠:您可以垂直和即时堆叠服务。
    Docker学习——基础知识(一):概述与环境配置

镜像和容器(Images and containers)

通过运行镜像启动容器。镜像是一个可执行包,包含运行应用程序所需的所有内容 - 代码,运行时,库,环境变量和配置文件。

容器是镜像的运行时实例——镜像在执行时在内存中有哪些变化(即具有状态的镜像或用户进程)。您可以使用命令,docker ps,查看正在运行的容器列表,就像在Linux中一样。

容器和虚拟机(Containers and virtual machines)

容器在Linux上本机运行,并与其他容器共享主机的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,这使容器轻量级化。

相比之下,虚拟机(VM)运行一个完整的“客户”操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM提供的环境比大多数应用程序需要的资源更多。

Docker学习——基础知识(一):概述与环境配置Docker学习——基础知识(一):概述与环境配置

配置Docker环境

支持的平台上安装维护版本的Docker Community Edition(CE)或Enterprise Edition(EE)。

完整的Kubernetes集成

安装Docker

测试Docker版本(Test Docker version)

  1. 运行docker --version并确保您拥有受支持的Docker版本:
docker --version

Docker version 17.12.0-ce, build c97c6d6
  1. 运行docker info或(docker version 不带 --)以查看有关docker安装的更多详细信息:
docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.12.0-ce
Storage Driver: overlay2
...

要避免权限错误(以及需要使用sudo命令),请将您的用户添加到docker组。阅读更多

测试Docker安装(Test Docker installation)

  1. 通过运行简单的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.
...
  1. 列出下载到您的计算机的hello-world映像:
docker image ls
  1. 列出显示消息后退出的hello-world容器(由镜像生成)。如果它仍在运行,则不需要--all选项:
docker container ls --all

CONTAINER ID     IMAGE           COMMAND      CREATED            STATUS
54f4984ed6a8     hello-world     "/hello"     20 seconds ago     Exited (0) 19 seconds ago

回顾备忘

## List Docker CLI commands
docker
docker container --help

## Display Docker version and info
docker --version
docker version
docker info

## Execute Docker image
docker run hello-world

## List Docker images
docker image ls

## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq

总结

容器化使CI/CD无缝。例如:

  • 应用程序没有系统依赖性
  • 可以将更新推送到分布式应用程序的任何部分
  • 资源密度可以优化。

使用Docker,扩展应用程序的问题在于启动新的可执行文件,而不是运行繁重的VM主机。

下一节

基础知识(二):容器

声明:此文章为个人根据官方文档翻译搬运,若有理解及翻译错误,欢迎大佬们批评指正。