相关文章推荐
非常酷的可乐  ·  getParcelableArrayList ...·  8 月前    · 

开发一个可以在服务器调用Docker命令的Java程序,然后build成jar包,直接丢到服务器跑

public static String getinfor(String command) {
        String finalcommand ="docker run "+command;
        StringBuilder strb = new StringBuilder();
        //开始和结束的下标
        int beginIndex = 0;
        int endIndex = 0;
            Process process = Runtime.getRuntime().exec(finalcommand);
            process.waitFor();
            //读取屏幕输出
            BufferedReader strCon = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = strCon.readLine()) != null) {
                strb.append(line+"\n");
            //根据自己的业务场景来
            if(strb.toString().contains("$body$")){
                beginIndex = strb.indexOf("$body$");
                endIndex = strb.lastIndexOf("$body$");
        }catch (Exception e){
            System.out.println("报错信息为:"+e.toString());
        return strb.substring(beginIndex,endIndex);
在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本:
docker exec -it mynginx /bin/sh /root/runoob.sh
在容器 mynginx 中开启一个交互模式的终端:
vi /lib/systemd/system/docker.service
找到Execstart=/usr/bin/dockerd后加上 -H tcp://0.0.0.0:4399 -H unix://var/run/docker/sock,保存退出。
重新载入守护进程,重启docker:...
				
好久没有写博客,今天在这里简单介绍一下我在做软件工程项目时使用Java Runtime.exec方法遇到的一些问题,希望加深大家对Runtime.exec方法的理解。 首先,大家都知道,Runtime.exec(String command)函数是用来执行命令命令的,那么是不是我把写在命令行中的命令直接复制粘贴成参数就可以了呢?事实并非如此,我们要理解这个函数的使用,要从它的源码说起。 clientl = docker.APIClient(base_url='unix://var/run/docker.sock') ex = clientl.exec_create("ef8b2201699b",cmd="cat /etc/passwd") response = clientl.exec_start(ex) print(response)
Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker相关资料 官网 http://www.docker.com 文档 http://docs.docker.com 镜像云库 https://hub.docker.com/ 项目源码 http://github.com/docker 10分钟看懂docker与K
首先我这里讲解一个Java程序docker上面运行部署的例子 首先介绍一下这是一个需要jdk和MySQL的项目,然后我们就需要在docker-compose上面写两个services 然后mysql挂载在宿主机下面,首先我先介绍一个docker-compose文件: version: "3" services: mysql: image: mysql container_name: mysql command: --default-authentication-p
目标基本了解Docker, 以及如何应用于日常开发为我们的Go应用程序制作简单的Dockerfileweb服务器在$GOPATH/src目录下创建项目相关目录和文件cd $GOPATH/src mkdir -p test.local/web-server touch test.local/web-server/main.gomain.go代码如下:package main import (
Java可以通过使用Docker命令来管理和运行容器。Docker是一个开源的容器化平台,可以帮助开发人员在不同的环境中轻松部署和运行应用程序。 要在Java中运行Docker命令,你可以使用Java的`ProcessBuilder`类来创建一个新的进程,并执行Docker命令。下面是一个简单的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class DockerCommandRunner { public static void main(String[] args) { try { // 创建一个ProcessBuilder对象,并设置要执行的命令 ProcessBuilder pb = new ProcessBuilder("docker", "run", "image_name"); // 启动进程并等待命令执行完成 Process process = pb.start(); int exitCode = process.waitFor(); // 读取命令执行结果 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); // 打印命令执行结果的退出码 System.out.println("Exit Code: " + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); 在上面的示例中,我们创建了一个`ProcessBuilder`对象,并设置要执行的Docker命令为`docker run image_name`。然后,我们启动进程并等待命令执行完成。最后,我们读取命令执行结果并打印出来,同时也打印了命令执行结果的退出码。 请注意,你需要将`image_name`替换为你要运行的Docker镜像的名称。