如何在docker容器中部署tpm2工具

如何在docker容器中部署tpm2工具,docker,security,docker-compose,dockerfile,tpm,Docker,Security,Docker Compose,Dockerfile,Tpm,我正试图按照中的详细说明在docker容器中部署TPM服务(这个过程在安装了Ubuntu 18.04的虚拟机上非常适合我) 一切正常,直到需要启用TPM-ABRMD服务,因此需要执行udevadm和systemctl命令,以重新启动udev规则并启用+激活服务 默认情况下,docker容器中的这两个命令都不可用,尽管我找到了一个可以使用udevadm的解决方法,并手动设置了与systemctl enable关联的符号链接,但这还不足以启动ABRMD服务 有什么我遗漏的吗?我尝试过许多其他的可能性

我正试图按照中的详细说明在docker容器中部署TPM服务(这个过程在安装了Ubuntu 18.04的虚拟机上非常适合我)

一切正常,直到需要启用TPM-ABRMD服务,因此需要执行
udevadm
systemctl
命令,以重新启动udev规则并启用+激活服务

默认情况下,docker容器中的这两个命令都不可用,尽管我找到了一个可以使用
udevadm
的解决方法,并手动设置了与
systemctl enable
关联的符号链接,但这还不足以启动ABRMD服务

有什么我遗漏的吗?我尝试过许多其他的可能性,但都没有成功

我正在使用docker compose,我想在其中安装此服务的容器中有一个docker compose.yml文件关联:

version: '3'
services:

  api:
    build:
      context: dockerfiles
    image: api
    container_name: api
    restart: unless-stopped
    ports:
      - ${API_EXTERNAL_PORT}:8080
    depends_on:
      - sql
    environment:
      HOST_DB: sql
      PORT_DB: 3306
      NAME_DB: ${MYSQL_DATABASE}
      PASSWORD_DB: ${MYSQL_PASSWORD}
      USER_DB: ${MYSQL_USER}

以及以下Dockerfile(内部/Dockerfile):


提前感谢。

Docker环境与VMs有着根本的不同,如果应用程序需要systemctl和(特别是)udev,它将无法在Docker中正常运行;容器通常不运行systemd,也无法访问udevd所需的主机硬件设备。
FROM ubuntu:18.04

WORKDIR /app
RUN apt-get update && apt-get install -y openjdk-8-jdk

ENV JAVA_OPTS ""

ENTRYPOINT ["sh", "-c"]
CMD ["java $JAVA_OPTS -Djava.secutiry.egd=file:/dev/./urandom -jar /app/app.war"]