每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。
Docker 是 DevOps 的代名词。什么是 Docker?如何学习 Docker?让我们在这篇文章中找出答案。
Docker 是 DevOps 的代名词。对我来说,Docker 是过去十年中排名前五的技术创新之一。
什么是 Docker?如何学习 Docker?让我们来了解一下。
目录
- 为什么我们需要 Docker?
- Docker 如何提供帮助?
- 什么是容器?
- 什么是 OCI?
- Docker 使用的一些重要术语是什么?
- 我如何学习 Docker?
6.1 在本地机器上安装 Docker
6.2 运行预建的 Docker 镜像
- 运行 Python 应用程序
- 运行 Java 应用程序
- 运行节点应用程序
- 概括
6.3 创建并运行自己的容器镜像
6.4 将你的容器镜像推送到 Docker Hub
6.5 了解运行容器的云服务
7. 后续步骤
1. 为什么我们需要 Docker?
过去十年流行的架构趋势之一是微服务。
在单体应用程序中,您拥有一个大型可部署单元,为您的应用程序的大多数功能提供服务。在微服务架构中,您将应用程序划分为更小的、可独立部署的构建块。
微服务架构为您提供了使用不同编程语言(Go、Java、Python、JavaScript 等)创新和构建应用程序的灵活性。然而,灵活性是有代价的。部署和操作变得更加复杂。
我们如何以相同的方式部署以不同语言构建的应用程序和服务?我们怎样才能有一种方法来为不同的服务和应用程序实现可观察性(日志、指标、跟踪等)?
进入Docker和容器!
2. Docker 如何提供帮助?
当你使用 Docker 时,你会为每个微服务构建一个单独的Docker 镜像。
每个 Docker 映像都包含运行微服务实例所需的一切:
- 操作系统
- 应用程序运行时(JDK 或 Python 或 NodeJS)
- 申请代码
- 应用程序依赖项
您可以在任何基础设施上以相同的方式(使用相同的流程)部署和运行此 Docker 映像:您的本地计算机、公司数据中心和云(AWS、Azure 或 Google Cloud)中。
Docker 简化开发如下:
- 您可以在任何地方运行 Docker 映像:在本地机器或测试机器上。
- 您可以将数据库和队列(MySQL、Kafka 等)作为 Docker 容器运行,而无需将它们安装在本地计算机上。
Docker 简化操作如下:
- 您以相同的方式部署所有微服务。
- 您可以以相同的方式为所有微服务实现可观察性(日志、指标、跟踪......)
3. 什么是容器?
一开始,Docker 回答了两个重要的问题:
- 如何构建 Docker 映像?
- 例如,我们可以在DockerfileDocker 镜像中指定指令并创建一个镜像。
- 如何运行 Docker 映像?
- Docker 提供了一个 Docker 运行时。安装一次,你就可以运行任何 Docker 镜像。
Docker 映像的运行实例称为容器。您可能有多个正在运行的微服务实例。每个实例都是一个容器。
4:什么是OCI?
Open Container Initiative (OCI) 的目标是围绕容器格式(即 Docker Image)和运行时(即 Docker Runtime)创建开放的行业标准。
现在考虑它的最简单方法是:
- OCI 提供接口。
- Docker 是一个实现。
5:Docker 使用的一些重要术语是什么?
- Docker Image:代表应用程序(或软件)特定版本的包
- 包含您的应用所需的一切(操作系统、软件、代码、依赖项)
- Docker 容器:Docker 镜像的运行时实例
- Docker Registry : 一个存储 Docker 镜像的地方
- Docker Hub:托管 Docker 映像的注册表
- Docker Repository:特定应用程序的一组 Docker 镜像(标签用于区分不同的镜像)
- Dockerfile : 包含创建 Docker 映像说明的文本文件
6:如何学习 Docker?
按照这 五个简单的步骤开始使用 Docker。
6.1 在本地机器上安装 Docker
您可以在官方 Docker 文档中找到为您的特定操作系统 安装 Docker Engine的说明。
6.2:运行预建的 Docker 镜像
运行 Python 应用程序
使用此命令启动应用程序:
docker container run -d -p 5000:5000 in28min/hello-world-python:0.0.1.RELEASE
您可以通过 http://localhost:5000 访问正在运行的应用程序。
您可以使用以下命令序列终止正在运行的容器:
docker container list docker container stop <>
运行 Java 应用程序
使用此命令启动应用程序:
docker container run -d -p 5000:5000 in28min/hello-world-java:0.0.1.RELEASE
您可以通过 http://localhost:5000 访问正在运行的应用程序。
运行节点应用程序
使用此命令启动应用程序:
docker container run -d -p 5000:5000 in28min/hello-world-nodejs:0.0.1.RELEASE
您可以通过 http://localhost:5000 访问正在运行的应用程序。
概括
您可以以相同的方式为使用不同语言构建的不同微服务运行容器。
6.3 创建并运行自己的容器镜像
请参阅此 Node.js 应用程序的源代码。以下是重要文件:
- Dockerfile- 创建 Docker 镜像的说明
- index.js- REST API 代码
- package.json- 你的依赖
让我们更详细地看一下 Dockerfile:
FROM node:8.16.1-alpine WORKDIR /app COPY . /app RUN npm install EXPOSE 5000 CMD node index.js
Dockerfile 包含创建 Docker 映像的说明。
- FROM- 设置基本图像
- WORKDIR- 设置工作目录
- RUN- 执行命令
- EXPOSE- 通知 Docker 容器在运行时监听的端口
- COPY- 将新文件或目录复制到图像中
- CMD- 执行容器的默认命令
以下一组说明可帮助您创建 Docker 映像。
- cd进入包含Dockerfile
- 构建 Docker 映像。in28min/hello-world-nodejs:0.0.2.RELEASE是对 Docker 映像的完整引用。in28min/hello-world-nodejs称为存储库名称。0.0.2.RELEASE称为标签。
- 构建 Docker 映像后,您可以在本地计算机上运行它。
祝贺您成功构建和运行您的第一个 Docker 映像。
6.4 将你的容器镜像推送到 Docker Hub
如果你想在其他机器上使用你的 Docker 镜像或者你想将它部署到云中,你需要将它推送到一个 Docker 注册表。流行的 Docker 注册表之一是 Docker Hub。
您可以创建一个帐户并使用以下方法登录:
docker login
连接到 Docker Hub 后,您就可以推送 Docker 映像了。(替换«YOUR_DOCKER_HUB_ID»为您的 Docker Hub ID)。
docker build -t <>/hello-world-nodejs:0.0.2.RELEASE . docker push <>/hello-world-nodejs:0.0.2.RELEASE
您现在可以转到您朋友的笔记本电脑并运行您的 Docker 映像。
docker container run -d -p 5000:5000 <>/hello-world-nodejs:0.0.2.RELEASE
6.5:了解运行容器的云服务
您可以在每个云中使用多种选项来运行 Docker 映像。
这是一个快速的总结:
- AWS:AWS Elastic Beanstalk
- GCP:谷歌应用引擎和谷歌云运行
- Azure:Azure 应用服务
此外,您可以使用容器编排解决方案。现在,让我们不要担心他们!
7:接下来的步骤
以下是一些建议的后续步骤,以继续您的旅程:
- 保护您的 Docker 映像
- 使用 Docker 运行微服务
- 了解 Docker 撰写
- 了解 Kubernetes
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.