前些天在小编在自己的VirtualBox安装了Docker,一直是采用dos命令对docker进行操作。于是打算了采用Java程序来管理docker,无奈,在网上找了半天也没有关于这样的贴子,于是自己琢磨的半天,终于是成功了。现在和大家一起分享。目前我是采用的是docker toolbox,下面是链接,后续我将采用VirtualBox虚拟机来链接,原因我会在文章结尾说明。

https://get.daocloud.io/toolbox/

一、环境配置

1、PC机一台,安装VirtualBox虚拟机(我用的是Ubuntu14版本)

2、eclipse开发环境

3、jdk1.8

二、导入依赖

<dependency>
   <groupId>com.github.docker-java</groupId>
   <artifactId>docker-java</artifactId>
   <version>3.0.6</version>

</dependency>

三、编写程序

public static void main(String[] args) {
//使用DockerClientBuilder创建链接
DockerClient dockerClient = DockerClientBuilder.getInstance("tcp://192.168.99.100:2376").build();
//设置Container暴露的端口:如tomcat端口是8080
ExposedPort tcp8080 = ExposedPort.tcp(8080);
//设置映射到主机的端口
Ports portBindings = new Ports();
portBindings.bind(tcp8080, Ports.Binding.bindPort(8089));
//创建一个新的Container并且与主机端口号绑定
CreateContainerResponse container1 = dockerClient.createContainerCmd("tomcat:latest")
.withPortBindings(portBindings).exec();
//运行一个Container

dockerClient.startContainerCmd(container1.getId()).exec();

}

需要注意的问题:

1、虚拟机的防火墙要处于关闭状态,或者允许你想要暴露的端口或者ip为allow(个人建议关闭防火墙)

2、虚拟机的网络链接是桥接或者是host-only模式(采用dockertoolbox使用默认配置就好了)

3、如果拟采用的是VirtualBox虚拟机,那么你需要找到docker运行的端口,docker默认没有与(2376)端口绑定.需要自己绑定。而使用toolbox他自己给你绑定好了端口。可以直接使用。

4、使用ifconfig命令查看主机ip,将IP:port填入创建链接的getInstance中(程序中我已经写明)


以上就可以使用Java程序来远程管理Docker了,docker-java提供了丰富的接口,可以满足对Docker的操作。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐