当前位置: 首页 > 面试题库 >

容器可以共享一个框架吗?

昌栋
2023-03-14
问题内容

我知道Docker容器可以共享数据量,但是它们可以共享框架吗?例如,如果我有两个在IIS上运行的.NET服务,是否可以仅在它们之间共享框架?


问题答案:

是的,你可以的,你通常要做的是

备选方案A:

创建一个busybox映像并复制您的框架,将该位置公开为一个卷 VOLUME /opt/framework/

FROM alpine
COPY framework /opt/framework
VOLUME /opt/framework
COPY busyscript.sh /usr/local/bin/busyscript
RUN chmod +x /usr/local/bin/busyscript
CMD ["busyscript"]

虽然busyscript.sh看起来像

#!/bin/sh
#set -x

pid=0

# SIGTERM-handler
term_handler() {
  if [ $pid -ne 0 ]; then
    kill -SIGTERM "$pid"
    wait "$pid"
  fi
  exit 143; # 128 + 15 -- SIGTERM
}

# setup handlers
# on callback, kill the last background process, which is `tail -f /dev/null` and execute the specified handler
trap 'kill ${!}; term_handler' SIGTERM

echo "Started code"
# wait forever
while true
do
  tail -f /dev/null & wait ${!}
done

将该图像作为服务添加到您的docker-compose.html" target="_blank">yml中,让我们说“ framework”,然后在您希望它们使用的服务上添加

volume_from
  - framework:ro

优点:

  • 您可以编译,构建和部署framworks soley
  • 运行此额外的容器几乎没有运行时开销

缺点:

  • 图像大小的开销(高山,30mb)

备选方案B 您将服务之一用作“框架基础”,假设服务A,这意味着您在该服务上复制了该框架(使用该服务的两个框架之一),并且再次使用该框架VOLUME /opt/framework作为卷公开

在服务B中,以相同的方式安装卷

serviceB:
  volume_from
    - serviceA:ro

优点:

  • 没有额外的容器

缺点:

  • 框架需要与服务A一起部署,无论服务A是否需要更新
    • 您对A有依赖性,A是否需要更新,由于共享,需要重新创建所有其他容器


 类似资料:
  • 问题内容: 我知道如何使用–volumes-from创建数据卷容器并将其安装到其他多个容器,但是我确实对它的用法和局限性有一些疑问: 情况:我正在寻找一个数据量容器来存储用户为我的Web应用程序上传的图像。该数据量容器将由运行Web前端的许多其他容器使用/安装。 问题: 数据量容器可以使用/安装在Docker群中其他主机上的容器中吗? 表现如何?建议以这种方式构造事物吗? 是否有更好的方法来处理跨

  • 问题内容: 我在一个具有不同进程的应用程序上工作,并被要求包含那些进程以实现更多隔离。 问题在于,进程与单个“管理程序”进程共享内存以便交换数据(它们使用经典的共享缓冲区)。该解决方案是为满足性能要求而实施的,因为它在用户空间中运行,因此在用户空间和内核空间之间没有内容切换。 如果我没看错,则不可能在单个IPC名称空间内运行多个docker容器,但是我不知道单个docker容器是否可能属于不同的I

  • 问题内容: 同一元素上的两个指令不能都具有隔离的作用域,但是它们都可以使用与其父对象隔离的相同的作用域吗?它们都可以使用绑定到隔离范围的属性吗? 例如,如果我对一个元素有两个指令 一个指令定义了一个具有绑定属性的隔离范围 另一个指令是否获得该范围,并且可以使用bound属性吗? 我的最初尝试(与上面的编码差不多)失败了。 问题答案: 我建议您通过辅助指令的require属性利用指令之间的通信。第一

  • 这可能是一个很基本的问题,但它使我感到困惑。 两个不同连接的套接字可以共享一个端口吗?我正在编写一个应用服务器,它应该能够处理100K以上的并发连接,我们知道一个系统上可用的端口数量大约是60K(16bit)。一个连接的套接字被分配给一个新的(专用的)端口,因此这意味着并发连接的数量受到端口数量的限制,除非多个套接字可以共享同一个端口。所以问题是。

  • 在使用Firebase云消息传递(FCM)的Firebase项目中,有一个用于云消息传递的自动生成的服务器密钥。FCM文档并没有指出可以且只能有一台服务器使用该自动生成的密钥(至少我可以找到)。但是,文档明确指出应该安全存储服务器密钥。 第一个问题:我是否错过了单个服务器记录的限制? 如果没有明确的限制,我确实会想到FCM可能会内置检查,以确保给定Firebase项目发送消息的请求仅来自单个IP地

  • 所以我的处境很棘手:我有一个外部的包装器,它包含一个内部的和一个,如下所示: 必须绝对定位在的正下方,但不能在页面出现和消失时移动它和其他元素。 因为它是绝对定位的,如果我在周围添加一个边框,它只在周围。问题是,我需要一个阴影,可以无缝地围绕两个元素。 我在搜索google/stackoverflow时遇到的三种解决方案是: > 给这两个元素赋予它们自己的阴影,然后使用去除上的顶部阴影,使其看起来