如何在Java中运行Docker容器

时间:2019-08-03 14:45:03

标签: java macos docker docker-java

我想从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套接字,但是我既不知道它们在哪里,也不知道如何告诉他在哪里找到它们。

1 个答案:

答案 0 :(得分:0)

使用依赖项,降级为3.0.14版本,并严格遵守本指南: https://www.baeldung.com/docker-java-api

不知道为什么,但是现在可以了。