精华内容
下载资源
问答
  • 我在此命令中成功创建容器:curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2",}' http://192.168.59.103:2375/containers/create?name=test_remote_reg然后,我在Java中...

    我想在this中使用docker remote api.

    我在此命令中成功创建了容器:

    curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2",}' http://192.168.59.103:2375/containers/create?name=test_remote_reg

    然后,我在Java中使用HttpClient(4.3.1)尝试通过以下代码创建容器:

    String containerName = "test_remote_reg";

    String imageName = "registry:2";

    String url = DockerConfig.getValue("baseURL")+"/containers/create?name="+containerName;

    List ls = new ArrayList();

    ls.add(new BasicNameValuePair("Image",imageName));

    UrlEncodedFormEntity fromEntity = new UrlEncodedFormEntity(ls, "uTF-8");

    HttpPost post = new HttpPost(url);

    post.setHeader("Content-Type", " application/json");

    if(null!=fromEntity) post.setEntity(fromEntity);

    HttpClient client = new DefaultHttpClient();

    client.execute(post);

    它不起作用,并引发错误:

    invalid character 'I' looking for beginning of value

    我只是添加标题信息,并添加有关“ Image:test_remote_reg”的参数对.

    我的Java代码有什么问题?它们之间有什么区别?我应该为我的Java代码编辑什么?

    展开全文
  • Java Docker和Docker容器简介

    万次阅读 2020-05-29 15:27:33
    简而言之,Docker 是一个工具,它允许您通过使用所谓的容器轻松地...我不是谈论现实世界容器。但是,既然您正在思考它,我不妨作个比喻。现实生活容器的目的是存储需要运输到另一个地方的货物或物品。现在,

    简而言之,Docker 是一个工具,它允许您通过使用所谓的容器轻松地构建、部署和运行应用程序。 这些容器允许我们打包所有必需的东西,比如库和依赖项。

    此外,容器在主机操作系统上运行。

    当我们使用 Docker 的时候有很多好处:

    • 增强了应用程序的可移植性,并且可以非常轻松地创建测试应用程序,而不必依赖于环境
    • 优化基础设施
    • 将应用程序及其依赖项打包到标准化单元中

    容器

    我不是在谈论现实世界中的容器。但是,既然您正在思考它,我不妨作个比喻。现实生活中的容器的目的是存储需要运输到另一个地方的货物或物品。现在,这些商品具有不同的存储要求,例如,例如,可能有牛奶的食用期限比西红柿要短得多。这就是为什么容器在现实生活中是一件非常有用的事情——它有利于贮存的内部环境,例如合适的温度。话虽如此,运输业不必担心这些物品,而将重点放在将它们从A运送到B上。

    现在,如果您已经阅读了上面的段落,Docker 中的容器是一样的。 感谢 Docker 的容器,我们可以轻松地将容器化的应用程序组件从一个环境移动到另一个环境。

    就像现实中的容器一样,Docker中的容器为我们提供了用于应用程序组件的隔离且安全的环境。与现实生活中的容器相比,应用组件是商品。

    Docker容器与虚拟机

    Docker中的容器结构

    虚拟机结构Docker

    基于这些映像,VM方法的问题在于它附带了很多东西——二进制文件和库(必不可少的),但最主要的是——整个Guest操作系统的总容量为几个GB。

    另一方面,Docker容器包含应用程序的所有依赖关系,并与其他容器共享内核。此外,Docker容器可以在任何计算机,基础架构和云上运行。现在,您可以再次类比现实生活中的容器并看到相似之处。

    安装Docker

    如果您使用Windows或Mac,请单击此处

    安装Docker之后,你将获得以下东西:

    1. 用于运行docker-machine命令的Docker Machine
    2. 用于运行docker命令的容器引擎
    3. Docker Compose用于运行docker-compose命令
    4. Kitematic,Docker GUI
    5. 为Docker命令行环境预先配置的Shell
    6. Oracle VirtualBox

    要检查您是否已成功安装docker,请输入以下命令:

    docker --version
    

    若要查看更多信息,如容器、正在运行的数量、暂停或停止的数量、图像等,您可以输入:

    docker info
    

    就是这样!您的机器上有Docker。要编写一个简单的hello world“程序”,可以输入以下命令:

    docker run hello-world
    

    输出:

    This message shows that your installation appears to be working correctly.
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    展开全文
  • 本系列,我们将为简单的Hello World创建一个Docker容器!使用Gradle OR Maven的Spring Boot应用尝试本指南之前,您应该具有:约15分钟的时间Spring Boot应用程序的基本知识Docker基础知识使用Gradle或Maven...

    在本系列中,我们将为简单的Hello World创建一个Docker容器!使用Gradle OR Maven的Spring Boot应用

    902ee85e6300f145499dc59f90c05aaf.png

    在尝试本指南之前,您应该具有:

    • 约15分钟的时间
    • Spring Boot应用程序的基本知识
    • Docker基础知识
    • 使用Gradle或Maven构建Java应用程序的基本知识

    先决条件:

    • JDK 1.8或更高版本
    • Docker
    • Gradle 4+或Maven 3.2+
    • 任意文字编辑器

    如果您不使用Linux机器,则需要一个虚拟服务器。访问VirtualBox的下载站点,并为您的计算机选择版本。


    一旦安装了所有必需的软件,就该从git下载源代码了

    下载并解压缩本指南的源存储库,或使用Git对其进行克隆:

    git clone https://github.com/shrikarvk/SpringBootOnDocker.git

    选择Maven或Gradle构建代码。

    如果您选择使用Maven,请按照以下步骤操作

    了解克隆的git repo中存在的POM.xml

     org.springframework spring-boot-docker 0.1.0jarSpring Boot DockerGetting started with Spring Boot and Dockerorg.springframework.boot spring-boot-starter-parent 2.0.5.RELEASEmydocker1.8

    pom.xml for docker

    在这里,我们具有使用groupId和版本构建Docker所需的工件。在这里,我们提到了下一步将要构建的Docker映像的前缀。此配置指定将使用名称创建映像的强制性内容mydocker/spring-boot-docker

     org.apache.maven.plugins maven-dependency-plugin unpackpackageunpack${project.groupId} ${project.artifactId} ${project.version}

    pom.xml for maven plugin

    POM.xml的这一部分具有构建项目所需的插件

    Spring Boot Maven插件收集了类路径上的所有jar,并构建了一个可运行的“ spring-boot-docker-0.1.0.jar”,这使执行和传输服务更加方便。它搜索公共static void main()方法以将其标记为可运行类。而且,它提供了一个内置的依赖项解析器,用于设置版本号以匹配Spring Boot依赖项。

    如果您选择使用Gradle,请按照以下步骤操作

    了解克隆的git repo中存在的build.gradle

    buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } mavenCentral() } dependencies { classpath('org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE') classpath('gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.13.0') }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'idea'apply plugin: 'org.springframework.boot'apply plugin: 'io.spring.dependency-management'apply plugin: 'com.palantir.docker'group = 'mydocker'bootJar { baseName = 'spring-boot-docker' version = '0.1.0'}task unpack(type: Copy) { dependsOn bootJar from(zipTree(tasks.bootJar.outputs.files.singleFile)) into("build/dependency")}docker { name "${project.group}/${bootJar.baseName}" copySpec.from(tasks.unpack.outputs).into("dependency") buildArgs(['DEPENDENCY': "dependency"])}repositories { mavenCentral()}sourceCompatibility = 1.8targetCompatibility = 1.8dependencies { compile("org.springframework.boot:spring-boot-starter-web") }

    build.gradle

    这里,依赖项中添加的Spring Boot gradle插件收集了类路径上的所有jar,并构建了一个可运行的单个“ spring-boot-docker-0.1.0.jar”,这使执行和传输您的文件更加方便服务。它搜索公共static void main()方法以将其标记为可运行类。而且,它提供了一个内置的依赖项解析器,用于设置版本号以匹配Spring Boot依赖项。Docker依赖关系是构建Docker所必需的

    该配置还指定以下内容

    • unpack jar文件的任务
    • 图像名称(或标签)是从jar文件属性中设置的,最终将显示为 mydocker/spring-boot-docker
    • 解压缩的jarfile的位置,我们可以在其中进行硬编码 Dockerfile
    • docker指向jar文件的构建参数

    设置Spring Boot App

    了解克隆的仓库中src文件夹下的Application.java类

    package helloDockerWorld;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class Application { @RequestMapping("/") public String home() { return "Hello Docker World"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

    application.java

    该类被标记为@SpringBootApplication和@RestController,这意味着Spring MVC已准备好使用该类来处理Web请求。@RequestMapping映射/到home()仅发送“ Hello Docker World”响应的方法。该main()方法使用Spring Boot的SpringApplication.run()方法来启动应用程序。


    在没有Docker容器的情况下(即在主机OS中)运行应用程序。

    如果您使用的是Gradle,请在cmd下执行以构建jar,然后在8080端口运行该应用

    ./gradlew build && java -jar build/libs/spring-boot-docker-0.1.0.jar

    如果您使用的是Maven,请在cmd下执行以构建jar,然后在8080端口运行该应用

    ./mvnw package && java -jar target/spring-boot-docker-0.1.0.jar

    并转到localhost:8080以查看“ Hello Docker World”消息。

    如果您能够看到“ Hello Docker World”消息,则表明Spring Boot App已在Tomcat中启动并运行。但是还没有容器化。


    我们将其容器化

    了解克隆的仓库中的Dockerfile

    FROM openjdk:8-jdk-alpineVOLUME /tmpARG DEPENDENCY=target/dependencyCOPY ${DEPENDENCY}/BOOT-INF/lib /app/libCOPY ${DEPENDENCY}/META-INF /app/META-INFCOPY ${DEPENDENCY}/BOOT-INF/classes /appENTRYPOINT ["java
    展开全文
  • 您可以使用Docker在特定的运行时环境运行容器中Java应用程序。本教程介绍如何创建Dockerfile,以便OpenJDK 8的容器中运行简单的Java应用程序。示例应用程序由一个Main.java文件组成,该文件打印Hello World!到...

    您可以使用Docker在特定的运行时环境中运行容器中的Java应用程序。本教程介绍如何创建Dockerfile,以便在OpenJDK 8的容器中运行简单的Java应用程序。

    示例应用程序由一个Main.java文件组成,该文件打印Hello World!到控制台并退出。编译输出位于/out/production/DockerJavaApp下的项目目录中。

    69bdfd457b3dbb6bd244d05c34b646f9.png

    在容器中运行Java应用程序

    在项目工具窗口中,右键单击项目名称,指向“新建(New)”并单击“文件(File)”。

    在“新建文件(New File)”对话框中,键入Dockerfile并单击“确定”。

    在新的Dockerfile中键入以下内容:

    FROM openjdk:8

    COPY ./out/production/DockerJavaApp/ /tmp

    WORKDIR /tmp

    ENTRYPOINT ["java","Main"]

    单击“运行Docker(Run on Docker)”阴影图标(

    116519ff9b250766cdcf88a93a5fd535.png),然后单击“'Docker'上的运行(Run on 'Docker')”。

    3c1d5b4ce3d37f3f32a103eb98aa1ef6.gif

    IntelliJ IDEA创建一个Docker运行配置,它从Dockerfile构建一个映像,然后根据该映像运行一个容器。输出目录(Main.class)的内容被复制到容器中的/tmp目录中。然后它从/tmp目录中运行该java Main命令。因此,您应该看到Hello World!打印到容器日志。

    例如,您可以与其他人分享图像,以准确演示您的应用程序如何运行,而无需安装必要的运行时(仅需要Docker)。

    要共享构建的图像,您需要配置一个Docker注册表 ,您可以在其中拥有图像推送权限。例如,您可以在Docker Hub上创建一个帐户, 并使用公共或私人存储库共享图像,或设置您自己的Docker注册表。

    将您的Java应用程序作为Docker镜像共享

    在Docker工具窗口中,找到从Dockerfile构建的图像。默认情况下,它由唯一图像ID指定,因为未提供图像标记。您可以编辑相应的运行配置并指定您选择的图像标签。要找出图像ID,请选择您从Dockerfile运行的容器并打开“属性(Properties)”选项卡。

    右键单击具有所需ID的图像,然后在上下文菜单中单击“推送图像(Push Image)”。

    在“推送图像(Push Image)”对话框中,选择您的注册表,指定图像的存储库名称和标记,然后单击“确定”。

    08399a36c9c41ff230ec907957b3396f.gif

    一旦图像被推送到注册表中,任何有权访问的人都可以将其拉出并从图像中运行一个容器。

    展开全文
  • 摘要:本文主要讲了如何Ubuntu14.04 64位系统下来创建一个运行Java web应用程序的Docker容器创建docker镜像的两种方法 第一种:启动镜像后进入容器操作,将需要的软件或者项目移动到容器,安装或者部署,...
  • 1. 前言前两天有同事发现,通过华为云 ServiceStage 的流水线部署基于模板创建的 CSEJavaSDK demo 服务时,会在容器启动过程报错。初步排查是由于 JVM 占用的内存超出了 docker 内存配额的上限,导致容器被 kill ...
  • 1.将项目打成jar包, 通过xftp 上传linux 某目录,此处在/data/...2.jar包所在的位置创建一个Dockerfile 文件 (保证jar包和Dockerfile 同一个目录下) 2.1创建Dockerfile文件 3.创建镜像 4.创建并运行容器 5.测试
  • 将Springboot应用程序封装在Docker容器中第一步是创建一个Springboot应用程序(如果你还没有这样做的话), 这里有一个现成的github克隆代码:https://github.com/caio-ps/docker-spring-sample2.到下载的这个项目目录...
  • 在Docker中安装ES,首先需要拉取ES的镜像 docker pull elasticsearch:5.6.8 我学习的时候用的为ES5.6.8,其他版本应该通用 然后创建容器 docker run ‐di ‐‐name=ES5.6.8 ‐p 9200:9200 ‐p 9300:9300 ...
  • 容器何时销毁现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器创建和启动都是秒级,所以这种容器化的部署方式被称之为轻量化部署。1. 容器中服务进程终止容器创建和运行是因某个服务进程而生的...
  • 一、部署tomcat 1、Ctrl+Alt +t打开命令 2、获取root权限: ...4、创建文件夹tomcat7,命令如,并且切换到该目录下: ...5、tomcat7文件夹下,创建Dockerfile touch Dockerfile 6、编辑Dock...
  • 设置Docker容器中JVM内存限制

    千次阅读 2019-10-12 13:44:24
    我们在创建docker容器的时候进行设置,也可以执行docker run的时候进行设置 docker create --name fsmp --memory 4596m --memory-swap -1 -e JAVA_OPTS='-Xmx4096m' -p 8010:8080 -p 20883:20883 -v /tomcat/...
  • docker容器 最简单的java演示实例

    千次阅读 2017-10-03 09:20:14
    由于本文章主要是为了方便自己以后复习...1.首先确定本机已经安装好docker容器等软件,即控制台,输入 docker version,就有docker的版本出现 2.当前登录用户可操作的情况下,创建一个目录文件夹 mkdir -p /Us
  • 前两天有同事发现,通过华为云 ServiceStage 的流水线部署基于模板创建的 CSEJavaSDK demo 服务时,会在容器启动过程报错。初步排查是由于 JVM 占用的内存超出了 docker 内存配额的上限,导致容器被 kill 掉。于是...
  • 3、安装docker-compose(使用docker-compose管理配置)并创建docker-compose.yml文件。4.docker-compose.yml文件所在目录下创建文件夹data,并将app,jar放入data即可5.运行容器6.docker-compose 常用命令; 第一次写...
  • 2、本地idea中创建一个SSM工程,编译打包成war文件 3、宿主机/root目录下,创建数据卷相应文件夹,以便启动容器时挂载映射 mysql容器挂载到mysql文件夹下,tomcat容器挂载到tomcat文件夹下。 4、启动...
  • Docker容器部署SpringBoot项目 一、首先给SpringBoot项目打包,上传至LInux服务器 二、编写Dockerfile文件 docker,一切皆为容器,我们待部署的项目也不例外,既然我们的项目也是一个容器,自然得先构筑它的...
  • 将jar包放入一个新建目录该目录下创建Dockerfile 文件 vi Dockerfile 然后将下面的内容复制到Dockerfile文件 FROM java:8 MAINTAINER zyj VOLUME /tmp ADD demo-0.0.1-SNAPSHOT.jar demo.jar EXPOSE 8081...
  • 本文,我们将重点介绍如何对 Spring Boot 应用程序进行 Docker 容器化以独立的环境(即容器运行它。 此外,我们还会展示如何创建容器的集成,它们彼此依赖并虚拟专用网络彼此链接。我们还能看到如何...
  • 1.将容器中文件拷贝到本机上: docker cp :/file/path/within/container /...* 在创建容器时候,就将本机的数据卷挂到容器中 docker run -v /user/local/java:/tem imageid 在容器中拷贝 * $ docker inspect -f
  • 容器何时销毁现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器创建和启动都是秒级,所以这种容器化的部署方式被称之为轻量化部署。1. 容器中服务进程终止容器创建和运行是因某个服务进程而生的...
  • 您是否需要通过Java Web应用程序创建Docker映像? 您使用Gradle吗? 如果是这样,那么您距Docker nivana仅4步之遥。 对于此示例,我将使用一个简单的Spring Boot应用程序。 您可以我的名为galoshe的Github...
  • 数据卷容器管理2.1 创建数据卷容器2.2 创建容器并使用数据卷容器2.3 测试2.3.1 访问 eureka1 容器共享目录写入数据2.3.2 访问 eureka2 容器并读取共享目录的数据3.数据备份3.1 创建宿主机备份目录3.2 通过...
  • “ 之前的几篇文章中我们进行了Docker...目标是在Docker容器中创建JVM可执行环境。”01—Docker CentOS Image查找Docker Hub中的CentOS版本,查找到官方的CentOS镜像,下载centos7先让它下载着,我们使用宿主机去下载...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 247
精华内容 98
关键字:

在java中创建docker容器

java 订阅