开发一个可以在服务器调用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镜像的名称。