Docker容器化技术详解

Docker是一种轻量级的、可重用的、便携的、可执行的软件包,用于开发、分发和部署。开发者可以将多种不同的软件(平台)组合在一起,以定制和创建特定的应用程序。例如,使用大数据中的Kafka设施需要许多要求和专业知识来设置配置。

Docker Registry和Repository

Docker Registry是由第三方托管的服务,例如:

  • Docker Hub: hub.docker.com
  • AWS Container Registry: aws.amazon.com/ecr
  • Google Container Registry: cloud.google.com/container-registry

开发者将他们的镜像放入上述提到的Docker注册表之一。另一方面,Docker Repository是一组具有相同名称但不同版本或标签的不同Docker镜像。

Docker Composer

Docker CLI是特定于单个或单独容器的,例如:

docker run hello-world docker pull repository/image_name

上述提到的CLI指令可以访问守护进程API。而Docker Compose CLI可以将多容器组合在一起,只需运行一条命令行docker-compose up。

它易于跟踪、网络和资源管理,最后但同样重要的是它是可重用的。镜像被设计为编排相关镜像的层。它需要Docker文件在YML中,允许多个容器。

YAML(Yet Another Markup Language或Ain’t Markup Language)

YAML是一种标记语言,它更侧重于数据而不是传统的标记导向(如XML或HTML)。它是区分大小写的,并且是人类可读的,主要用于不同平台之间的配置。

Docker Compose只需要编写一个:

docker-composer.yml

并通过docker-compose up运行它。因此,可以通过一条命令行从Docker获得服务或应用程序。

Docker镜像和容器

构建Docker文件是制作镜像的第一步,当客户端拉取镜像并开始运行镜像时,它就变成了一个容器,换句话说,容器是镜像的一个实例,就像面向对象中的一个对象是一个类的实例一样。

在Windows上安装Docker

第一步是访问这个链接并选择Get Docker Desktop — Windows (stable):

docker-ce-desktop-windows

点击Docker for Windows Installer,这是一个.exe文件,并尝试按照以下步骤安装Docker:可以勾选第二个复选框,因为当在Windows上工作时,可以使用容器用于Windows或Linux,但要注意Docker镜像的标签,如果它指定为Linux,那么容器也应该是Linux。

启用Windows的Hyper-V,之后机器将被安装,其他VirtualBox无法与Docker并行工作。

现在,如果有一个Docker ID,可以登录,否则进行下一步。

为了创建一个Docker ID,请选择注册并输入Docker ID,它应该是唯一的。然后应该验证电子邮件地址。

要检查Docker是否已正确安装,请输入以下每行,并在结束后按Enter按钮,如图。(可以使用“Windows PowerShell”来运行Docker命令。)

  • docker --version
  • docker-compose --version
  • docker run hello-world

在Linux上安装Docker

安装Docker Repository:

有两种方式在Linux上安装Docker:

从Repository安装Docker:

sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add sudo apt-key fingerprint sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

要在Linux上安装Docker CE,请访问这个链接,Ubuntu必须是64位的:

docker-ce-ubuntu sudo apt-get update sudo apt-get upgrade sudo apt-get install docker-ce docker-ce-cli containerd.io sudo docker --version docker-compose --version sudo docker run hello-world

创建Composer文件,docker-composer.yml

在这个例子中,Kafka需要Zookeeper来运行。因此,需要从Docker中拉取两个不同的镜像并将它们组合在一起,因此根据第一章“Docker Composer”,而不是一个接一个地拉取镜像,必须编写“docker-compose.yml”,并更改目录到docker-compose.yml所在的位置,然后运行:

  • docker-compose up

配置

version: "2"

services:

kafkadocker: image: "spotify/kafka:latest" container_name: kafka hostname: kafkadocker networks: - kafkanet ports: - 2181:2181 - 9092:9092 environment: ADVERTISED_HOST: kafkadocker ADVERTISED_PORT: 9092 kafka_manager: image: "mzagar/kafka-manager-docker:1.3.3.4" container_name: kafkamanager networks: - kafkanet ports: - 9000:9000 links: - kafkadocker environment: ZK_HOSTS: "kafkadocker:2181"

networks:

kafkanet: driver: bridge

将Docker镜像推送到Docker仓库

然后转到项目的路径:

docker login docker.io docker push reponame/imgname:latest

然后检查Docker仓库页面以确保一切正常。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485