Docker 入门 第一部分: 定位和设置

时间:2023-02-11 23:33:07

Docker 入门 第一部分: 定位和设置

docker入门教程可以让你学会一下内容:

1. 搭建你的Docker环境(也就是本页内容)

2. 构建一个镜像,并以一个容器的方式运行它

3. 扩展你的应用程序以运行多个容器

4. 跨集群发布你的应用程序

5. 通过添加一个后端数据库来堆叠服务

6. 把你的应用程序部署到生产环境

Docker概念

docker是一个用来为开发者和系统管理员提供用容器来开发、部署、运行应用程序的平台。使用Linux容器部署应用程序被称作容器化。容器不是一个新概念,它们的用途是轻松部署应用程序

容器化越来越受欢迎,因为容器:

* Flexible 灵活:即使最复杂的应用程序也可以给容器化

* Lightweight 轻量:多个容器可以利用并共享主机内容

* Interchangeable 可替换:你可以快读部署更新和升级

* Portable 便携:你可以在本地构建,然后部署到云,且可以在任何地方运行

* Scalable 可扩展:你可以增加并自动发布容易副本

* Stackable 可堆叠:你可以快速垂直的堆叠服务

镜像和容器

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

一个容器就是一个镜像的一个运行时实例——镜像在内存中运行时的状态(也就是一个有状态的镜像或者一个用户进程)。运行docker ps命令后你可以看到一个你正在运行的容器的列表,就好像你在Linux中一样。

容器和虚拟机

每一个容器天生就可以运行在Linux上并和其他的容器共享主机内核。它运维一个独立的进程,不会比其他可执行程序占用更多内存,这使它变得轻量化。

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

Docker 入门 第一部分: 定位和设置Docker 入门 第一部分: 定位和设置

准备你的Docker环境

支持的平台上安装Docker社区版或企业版的一个还在维护的版本

完整的 Kubernetes 集成

安装Docker

测试 Docker 的版本

  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 安装

  1. 通过运行一个简单的 Docker 镜像——hello-world,来测试你的安装:

    hello-world 是docker的最小化镜像实例中的一个:
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 ,扩展你的应用程序的问题在于启动新的可执行文件,而不是运行臃肿的虚拟机。