Docker 化





5.00/5 (6投票s)
本文是对 Docker 化的简短、简洁且实用的探索。
引言
Docker 是一个用于以方便的方式打包应用程序的软件平台。 Docker 创建了一个轻量级、可重用、可移植且可执行的软件软件包,用于开发、交付和部署。开发人员将多个不同的软件(平台)组合在一起,以自定义和创建特定的应用程序。例如,在大数据中使用 Kafka 功能需要许多要求和专业知识来进行配置。
Docker 注册中心和仓库
Docker 注册中心是由第三方托管的一项服务,例如
- Docker hub: hub.docker.com
- AWS 容器注册中心: aws.amazon.com/ecr
- Google 容器注册中心: cloud.google.com/container-registry
开发人员将他们的镜像放在上述 Docker 注册中心之一中。另一方面,Docker 仓库是具有相同名称但不同版本或标签的各种 Docker 镜像的集合。
Docker Compose
Docker CLI 专门用于单个或独立的容器,例如
docker run hello-world
docker pull repository/image_name
上面提到的 CLI 指令可以访问守护进程 API。虽然 Docker compose CLI 可以通过运行一行命令 `docker-compose up` 来组合多容器。
易于跟踪、联网和资源管理,最后但并非最不重要的是,它是可重用的。镜像被设计成编排相关镜像的层。它需要 YML 格式的 Docker 文件,该文件允许使用多个容器。
YAML(Yet Another Markup Language 或 Ain’t Markup Language)是一种标记语言,它更注重数据,而不是传统的面向标记的语言(例如 XML 或 HTML)。它区分大小写 并且易于阅读,通常用于不同平台之间的配置。
Docker compose 只需要编写在一个 docker-composer.yml 文件中,然后通过 `docker-compose up` 运行它。因此,可以通过一行命令行从 Docker 获取服务或应用程序。
Docker 镜像和容器
构建 Docker 文件是制作镜像的第一步,当客户端拉取镜像并开始运行该镜像时,它就变成了一个容器,更好地说,容器是镜像的一个实例,例如对象,它是面向对象中一个类的实例。
在 Windows 上安装 Docker
- 第一步是转到此链接并选择 Get Docker Desktop — Windows (stable)
- 单击 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 仓库
有两种方法可以在 Linux 上安装 Docker
从仓库安装 Docker
sudo apt-get update
sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
curl -fsSL <a href="https://download.docker.com/linux/ubuntu/gpg">https://download.docker.com/linux/ubuntu/gpg</a> |
sudo apt-key add — Verify fingerprint by entering last 8 character:
sudo apt-key fingerprint
sudo add-apt-repository
“deb [arch=amd64] <a href="https://download.docker.com/linux/ubuntu">https://download.docker.com/linux/ubuntu</a> \ $(lsb_release -cs) \ stable”
要在 Linux 上安装 Docker CE,请转到此链接,Ubuntu 必须是 64 位才能运行 Docker
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 Compose”,我们必须编写“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
> dockerpush reponame/imgname:latest
然后检查 Docker 中的仓库页面,以确保一切正常。
拉取您现在推送的内容以进行测试
创建一个 YML 文件,其中包含服务和容器名称,以及您要拉取的指定镜像。将目录更改为 YML 路径并运行 docker-compose up。
历史
- 2019 年 7 月 20 日:初始版本