跳至页脚内容
使用 IRONSECUREDOC

从镜像启动 Docker 容器(开发者教程)

什么是Docker?

Docker 是一个开源平台,可以在轻量级、便携的容器中自动部署和管理应用程序。 容器将应用程序与其依赖项(包括库和配置文件)打包在一起,因此可以在不同的环境中一致地运行。 这种一致性使开发和测试更加简单,因为应用程序在不同系统上可以相同地运行——无论是在开发人员的笔记本电脑、服务器还是云环境中。 应用程序管理的可扩展性意味着高效地开发、交付和运行容器,而 Docker 使之变得容易。

Docker 从镜像启动容器(开发者教程):图 1 - Docker

Docker 镜像使开发人员为一致的运行时环境进行规范变得更加简单。 大多数预构建的镜像可以在称为 Docker Hub 的开放注册表中找到,开发人员可以直接使用或自行定制。对于涉及多个容器的应用,像 Docker Compose 这样的工具可以编排容器,而 Kubernetes 可以管理更复杂的扩展和自动化。 Docker 已成为软件开发和 DevOps 中的重要工具。

什么是 Docker 容器?

Docker 容器 本质上是将应用程序及其所有依赖项—如库、二进制文件和配置文件—打包成一个轻量独立的可执行实体。 在隔离中设计的容器在主机操作系统的内核顶部运行,避免与其他正在运行的软件干扰。 它们易于启动、停止或删除,非常适合测试、部署和扩展。

Docker 容器的特性

  • 隔离性:容器在隔离的环境中运行; 即使它们使用不同的依赖集或库,应用程序也不会互相冲突。
  • 轻量级:容器共享主机操作系统内核,因此它们比虚拟机(VMs)更小,启动时间更快。
  • 可移植性:容器是确定的,可以在任何使用 Docker 的系统上运行,确保开发、测试和生产环境的一致性。
  • 可扩展性:容器可以轻松复制和扩展,支持微服务的快速部署和管理。
  • 资源效率:容器消耗的资源比虚拟机少,允许更高的密度和高效的计算资源利用。

什么是 Docker 镜像?

Docker 镜像是一种用于创建容器的蓝图。 它是只读且分层的,详细说明了运行应用程序所需的系统文件和依赖项。 使用 Dockerfiles 创建镜像,指定如何构建 Docker 镜像,可能涉及安装软件或复制文件等任务。 对 Dockerfile 的每次修改创建一个新的镜像层,保持效率和模块化。

Docker 镜像的特性

  • 多级栈:镜像使用 Dockerfiles 通过层构建。 Dockerfile 中的每条指令都会增加一个层,因此镜像应优化以仅重建更改的层。
  • 可重用性:像 Ubuntu 或 Node.js 这样的基础镜像可以在项目间重用,节省开发时间和资源。
  • 版本控制:镜像可以打标签进行版本控制,如果需要可以更容易地回滚到以前的版本。
  • 模块化:镜像的更改是增量的,使得无需重建整个镜像即可进行简单的更新。
  • 可在 Docker Hub 获取:公共和私有镜像仓库便于镜像的共享和部署。

如何创建一个 Docker 容器

Dockerfile 是一个提供指令以创建 Docker 镜像的文本文件。 在此文件中,您需指定基础镜像、依赖项、应用程序代码、环境变量以及运行应用程序的命令。 这是一个简单的例子:

# Use an official Node.js runtime as a parent image
FROM node:18

# Set the working directory in the container
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json /app
RUN npm install

# Copy the rest of the application code
COPY . /app

# Expose the application’s port
EXPOSE 3000

# Define the command to run the application
CMD ["node", "app.js"]

构建 Docker 镜像

使用 Dockerfile 创建您的 Docker 镜像。 在其所在目录的终端命令行中,执行:

确保在执行以下命令之前安装 Docker Desktop。

docker build -t my-app .
docker build -t my-app .
SHELL

此命令会创建一个名为my-app的镜像。 要确认它已经创建,执行:

docker images
docker images
SHELL

运行 Docker 容器

有了镜像,您可以创建一个 Docker 容器并使用docker run命令运行它。 Docker 守护进程将启动并监控进程,可在分离模式(后台)或前台运行。

docker run -d -p 3000:3000 --name my-running-app my-app
docker run -d -p 3000:3000 --name my-running-app my-app
SHELL
  • -d:在后台运行容器。
  • -p 3000:3000:将主机的端口 3000 映射到容器中的端口 3000。
  • --name my-running-app:为容器分配用户定义的名称。

验证容器

要检查正在运行的 Docker 容器,使用:

docker ps
docker ps
SHELL

Docker 从镜像启动容器(开发者教程):图 2 - 运行 Docker 容器

上述命令显示运行容器的详细信息,包括容器ID、名称、镜像名称等。

停止和移除容器

# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
SHELL

Docker 从镜像启动容器(开发者教程):图 3 - 停止容器

IronSecureDoc是什么?

IronSecureDoc Docker 是 Iron Software 提供的一个容器化文档处理解决方案,可以在 Docker 环境中自动处理文档,无需人工介入。 它提供复杂的文档工作流程和最大的数据保护功能,包括加密、数字签名、解密、添加水印等,适用于 PDF 和文档文件。 它确保跨平台的一致和可扩展的隔离部署,使其适合 DevOps 和 CI/CD 管道集成。

Docker 从镜像启动容器(开发者教程):图 4 - IronSecureDoc:PDF 安全与合规服务器

这种容器化的方法增强了需要自动化和高安全性的应用程序中的文档处理,兼容微服务和云原生环境。 IronSecureDoc 对于创建需要在受控和便携的 Docker 环境中可靠地自动文档处理的应用程序的开发者特别有用。

安装并运行 IronSecureDoc

从命令提示符或终端窗口执行以下命令,从存储库下载 IronSecureDoc Docker 镜像:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker 从镜像启动容器(开发者教程):图 5 - 下载 IronSecureDoc 镜像

在拉取 Docker 镜像后,执行另一个命令以启动 IronSecureDoc 容器。

为IronSecureDoc创建新容器

docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

上述docker run命令创建一个 IronSecureDoc 容器实例。

Docker 从镜像启动容器(开发者教程):图 6 - 新建容器

使用 IronSecureDoc 容器

IronSecureDoc 使用户能够安装和运行 Docker,通过其 REST API 涂抹、认证或加密文件。

Docker 从镜像启动容器(开发者教程):图 7 - SecureDoc Web API

例如,要加密文档,您可以向 IronSecureDoc API 发起一个 POST 请求:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

这会将文档转发给 IronSecureDoc,其将根据需要处理和加密数据。

结论

简单来说,Docker 简化了应用程序的部署,因为开发者可以从镜像创建一个容器,从而在便携和可扩展的环境中确保一致性。 这导致在跨平台中高效地运行应用程序,并促进资源利用,提升 DevOps 和 CI/CD 管道。

类似地,IronSecureDoc Docker 利用 Docker 的容器化架构提供安全的自动文档处理解决方案。 Docker 和 IronSecureDoc 结合起来,为在现代软件开发中构建安全、可扩展的应用程序提供了强大的工具。 有关 IronSecureDoc 许可证信息,请点击此许可页面,关于 Iron Software 的许多产品详情,请访问库套件页面

常见问题解答

什么是Docker,为什么它对开发者重要?

Docker 是一个开源平台,可自动化应用程序在容器中的部署和管理。它将应用程序与其依赖项打包在一起,确保跨不同环境的一致操作,从而简化了开发、测试和扩展。

Docker 镜像如何促进应用程序部署?

Docker 镜像作为创建容器的只读蓝图。它们定义了运行应用程序所需的系统文件和依赖关系,使分享和部署变得简单。镜像可以存储及从 Docker Hub 等注册表访问。

创建和运行 Docker 容器的关键步骤是什么?

要创建和运行 Docker 容器,首先编写一个 Dockerfile,指定基础镜像和依赖关系。然后,从 Dockerfile 构建 Docker 镜像,并使用 docker run 命令来创建并启动容器。

IronSecureDoc 如何增强 Docker 中的文档处理?

IronSecureDoc 是一种基于 Docker 的解决方案,提供加密和数字签名等功能来自动化文档处理。它确保了 Docker 容器内的安全、可扩展的工作流程,使其非常适合集成到 DevOps 和 CI/CD 流程中。

Docker 容器为应用程序开发提供了哪些好处?

Docker 容器提供隔离、轻量级操作、可移植性和资源效率。它们确保跨环境的一致应用程序执行,支持快速部署,并简化微服务的管理。

开发人员如何确保使用 Docker 安全地处理文档?

开发人员可以使用 IronSecureDoc 在 Docker 容器内自动化安全文档处理。它提供加密、数字签名和其他安全功能,加强文档工作流程的保护性和完整性。

Docker Hub 在容器部署中扮演什么角色?

Docker Hub 作为一个开源的预构建 Docker 映像注册表,允许开发人员访问和共享镜像。这有利于应用程序的简单定制和部署,提速开发流程。

Docker 如何改善应用程序的可扩展性和效率?

Docker 通过轻松复制和管理容器来提高可扩展性。这使应用程序可以快速高效地扩展,优化资源利用并支持现代软件开发实践。

Dockerfile 在容器创建中的目的是什么?

Dockerfile 用于定义 Docker 容器的基础镜像、依赖关系、应用程序代码和执行命令。它作为构建 Docker 镜像的蓝图,之后可用于创建容器。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。