我想从Java Eclipse项目中运行以下命令:
docker container run -p 4000:5000 virtuprint:vp
其中virtuprint:vp
是图像。
我从这里https://github.com/docker-java/docker-java使用maven通过其所有依赖项安装了docker-java api。
我正在使用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:无法初始化类org.newsclub.net.unix.NativeUnixSocket
我想是因为他试图在没有的地方找到Unix套接字,但是我既不知道它们在哪里,也不知道如何告诉他在哪里找到它们。
答案 0 :(得分:0)
使用依赖项,降级为3.0.14版本,并严格遵守本指南: https://www.baeldung.com/docker-java-api
不知道为什么,但是现在可以了。