你有几个邮箱呢?你是怎么分配它们的用途呢?码云账号增加多邮箱支持!
指数
0
Watch 67 Star 135 Fork 28

helyho / JDockerJavaApache-2.0

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
JDocker 是一个基于 Docker1.12开发出的开发包,通过封装 Docker API 使开发这可以快速的使用 Java 开发出控制和操作 Docker 的代码.使用流式操作,简单明了。 展开 收起

克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

#JDocker 基于 Docker1.12+ (Docker API 1.24+) 开发出的开发包,通过封装 Docker API 使开发者可以快速的使用 Java 开发出控制和操作 Docker 的应用,使用流式操作,简单明了。

完善的测试用例覆盖率达87%。

####JDocker 是 Voovan 开源项目的一个子项目,自然是依赖于 voovan开源项目的。

**交流QQ群:**454201740

JDK 1.8 jar size 196K

####重要更新

  • 2017-03-16 [1.0-beta-2] Cmd类增加了 Connect 的三个重载函数,现在构造完 Cmd 后需要 connet 来连接 Docker.
    • public void connect()

      DockerGlobal 中配置的默认连接方式

    • public void connect(int timeOut)

      DockerGlobal 中配置的默认连接方式,指定超时事件

    • public void connect(String host, int port, int timeOut)

      指定 Docker 主机连接

  • 2017-01-22 [1.0-beta-1] 增加对 Docker Api 1.25 的支持。
  • 2016-12-05 完成 Docker Api 1.24 的支持。

####Maven 支持:

<dependency>
    <groupId>org.voovan</groupId>
    <artifactId>JDocker</artifactId>
    <version>1.5.3</version>
</dependency>

####对 Voovan 项目的Maven依赖:

<dependency>
    <groupId>org.voovan</groupId>
    <artifactId>voovan-framework</artifactId>
    <version>1.0</version>
</dependency>

Voovan 所有 Maven 支持请访问:Voovan on maven


####通过设置org.voovan.docker.DockerGlobal中的环境变量来连接至 Docker。

    public static String DOCKER_REST_HOST = "127.0.0.1";
    public static int DOCKER_REST_PORT = 2735;
    public static String DOCKER_REST_CHARSET = "UTF-8";
    public static int DOCKER_REST_TIMEOUT = 5;
    public static boolean DEBUG = false;

####使用 JDocker 创建一个容器:

        //构造一个创建命令
        CmdContainerCreate createCmd =  CmdContainerCreate.newInstance("d_test");
        createCmd.connect();
        //使用流式操作来创建容器
        Object data = createCmd.image("alpine").network("bridge")
                .volume("v_tx:/v_tx").link("dockerfly:dockerfly")
                .cmd("ping","127.0.0.1").env("author=helyho")
                .exposePort(22,"tcp","2222").send();
        createCmd.close();
        Logger.info(formatJSON(data));

具体使用请参照 org.voovan.docker.test.command测试用例。


####如何开启 Docker 的 Remote API?

由于 Docker 默认是使用 unixsock 提供服务,我们可以使用以下两种方式打开端口:

  • 通过 socat 将 unixsocket 转换成 TCP 的 Socket 监听

    socat tcp4-listen:2735,reuseaddr,fork unix-connect:/var/run/docker.sock

  • 开启 Docker TCP 监听端口

    修改 Docker 服务启动参数,添加一个没有被占用的端口号

    # vim /etc/default/docker

    DOCKER_OPTS='-H 127.0.0.1:2735'

    重启 Docker 服务生效.

第二种方法我从网上找来,我自己没有实验成功,经过我研究找到了第一种方法,并且一直使用第一种方法,很简单而且有效.

以上的配置对应org.voovan.docker.DockerGlobal中的这两个参数:

public static String DOCKER_REST_HOST = "127.0.0.1";
public static int DOCKER_REST_PORT = 2735;    

点评 ( 17 )

你可以在登录后,发表评论

搜索帮助