限制docker容器

限制docker容器

我是 docker 新手。

我们需要在客户的环境中托管我们的应用程序。

因此,我必须限制 shell 访问,这样就没有人能够提取代码。我尝试通过删除其中的 bash 访问权限来限制 shell 访问,但我仍然能够使用docker cp命令将容器中的内容复制到服务器。

基本上,我的容器应该正在运行,并且应该被锁定,没有人能够访问其中的代码。

答案1

基本上,我的容器应该正在运行,并且应该被锁定,没有人能够访问其中的代码。

您无法使 docker 镜像不可复制。就这么简单。

这根本是不可能的,这是计算的基本事实——以及 Docker 的设计。如果你想让计算机执行某件事,它读它。你无法改变它,就像你无法让水变得不那么湿一样。

此外,docker 的创建者故意的建立在其他人的工作之上 - docker 镜像由层组成,层扩展了下层的内容。它的设计使其易于阅读和添加。

如果你想让你的代码保持秘密,你就不能给任何人一份副本。这是简单的。

答案2

Docker 容器共享主机系统的内核,但为应用程序运行提供隔离的环境。每个容器包含自己的文件系统、进程、网络接口和资源分配,但它们都共享同一个内核。

以下是锁定/隔离容器的一些技巧

因此,您需要部署一个经过强化且访问受限的主机。除此之外,您还需要为容器创建一个隔离的 Docker 网络

docker network create --internal isolated_network

仅将此网络用于这一个容器,否则如果您将其用于更多容器,它也可以与其他容器进行通信。

首先,您可以使用像 Alpine Linux 这样的最小基础映像,并在容器中使用一些 iptables 规则来拒绝传入和传出的流量。(但容器也无法更新其软件包等等)

相关内容