我想从 Java Eclipse 项目中运行以下命令:
docker container run -p 4000:5000 virtuprint:vp
其中 virtuprint:vp
是图像。
我从这里安装了 docker-java api https://github.com/docker-java/docker-java通过 Maven 使用其所有依赖项。
我正在使用 MacOS,我想这给我带来了麻烦。
我已经阅读了文档和 wiki,并且只是做了一些测试代码来查看它是否正在运行(当然它没有运行。)
DockerClient dockerClient = DockerClientBuilder.getInstance().build();
List<Container> containers = dockerClient.listContainersCmd().exec();
for(Container c: containers) {
System.out.println(c.getId());
}
所以我只想在短期内打印容器ID。从长远来看,我想在我的 java 应用程序中按需运行多个 docker 容器。 但如果我运行代码,我会得到:
java.lang.NoClassDefFoundError: Could not initialize class org.newsclub.net.unix.NativeUnixSocket
我猜这是因为他试图在不存在的地方找到unix套接字,但我既不知道它们在哪里,也不知道如何告诉他在哪里找到它们。
最佳答案
使用了依赖项,降级到版本 3.0.14 并严格遵守本指南: https://www.baeldung.com/docker-java-api
不知道为什么,但现在可以了。
关于java - 如何从 java 中运行 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57339358/