使用Java-Docker连接Docker记录

本文详细介绍了如何在SpringBoot项目中配置并使用Docker,包括安装Docker、配置TCP连接、添加java-docker依赖、配置Docker参数、注入Docker的Bean以及创建和启动容器的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在项目里配置了连接本地Docker,但是因为昨天有人提交了配置文件,我也没注意就把我自己的覆盖了…配置没了…于是重新回想了一下,顺便写个博客记录一下

环境

项目环境:SpringBoot 2.1.6 + JDK1.8
Java_Docker版本:java-docker 3.1.5
Docker版本:Docker for Windows 19.03.1

步骤

  1. 安装Docker 略
  2. 开启Docker的tcp连接
    右键Docker-Settings-General-开启Expose daemon on tcp://…
    在这里插入图片描述
  3. 在项目中添加java-docker依赖
		<!-- docker-java 依赖 -->
        <!-- https://mvnrepository.com/artifact/com.github.docker-java/docker-java -->
        <dependency>
            <groupId>com.github.docker-java</groupId>
            <artifactId>docker-java</artifactId>
            <version>3.1.5</version>
        </dependency>
  1. 在项目中配置java-docker
    在配置文件中添加:docker:host(可省略),配置的地址就是第二步中开启的.
#docker配置
docker:
  host: tcp://localhost:2375

添加Docker的Bean注入

package com.jytd.sdntest.common.config;

import com.alibaba.fastjson.JSONObject;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.Info;
import com.github.dockerjava.core.DockerClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DockerConfig {

    @Value("${docker.host}")
    private String dockerHost;

    @Bean
    public DockerClient connectDocker(){
        DockerClient dockerClient = DockerClientBuilder.getInstance(dockerHost).build();
        Info info = dockerClient.infoCmd().exec();
        String infoStr = JSONObject.toJSONString(info);
        System.out.println("docker的环境信息如下:=================");
        System.out.println(info);
        return dockerClient;
    }
}

结果

配置成功之后,启动项目就可以看到连接信息打印出来了(只截了一部分)
在这里插入图片描述
接下来就可以在项目中连接并使用Docker了.
我只用了一小点.所以贴一点出来,具体的各种可供使用的函数可以参考其他资料

			//创建容器
            //获取一个可用的端口
            String port=this.getPort();
            String containerName="vnc-"+port;
            //在该端口开启一个容器,-name指定名字,以便关闭和获取
            //在指定端口创建指定名称的容器
            CreateContainerResponse container=this.createContainer(containerName,"dorowu/ubuntu-desktop-lxde-vnc",port);
            //启动刚刚创建的容器
            this.startContainer(container.getId());

问题

当时查资料,看到Linux的Docker修改配置文件是可以实现IP远程连接的.windows的目前我只能localhost连接本机,所以也不知道能不能让别人远程连我的.暂时只能做到这样.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值