我想在Java Eclipse项目中运行以下命令:
docker container run -p 4000:5000 virtuprint:vp
其中
virtuprint:vp
是图像。我通过maven使用所有依赖项从此处https://github.com/docker-java/docker-java安装了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套接字,但是我既不知道它们在哪里,也不知道如何告诉他在哪里找到它们。
最佳答案
发挥依赖性,降级至版本3.0.14,并严格遵循本指南:
https://www.baeldung.com/docker-java-api
不知道为什么,但是现在可以了。