Docker Java 例子
2024-09-02 04:06:43
版权所有,未经许可,禁止转载
章节
正如我们前面提到的,docker可以执行任何应用程序。
我们将创建一个Java应用程序,并使用docker运行它。
1. 创建项目目录
我们会把这个项目的相关文件,集中放到一个目录docker-java
:
[root@qikegu demo]# mkdir docker-java
2. 创建Java文件
在docker-java
目录下,创建一个Java文件:
Qikegu.java
class Qikegu{
public static void main(String[] args){
System.out.println("This is java docker app - qikegu.com \n");
}
}
3. 创建Dockerfile
创建Java文件之后,我们需要创建一个Dockerfile,其中包含了Docker的指令。在docker-java
目录下创建Dockerfile,文件名必须是Dockerfile
。
Dockerfile
FROM java:8
COPY . /var/www/java
WORKDIR /var/www/java
RUN javac Qikegu.java
CMD ["java", "Qikegu"]
所有指令都大写,这是惯例。
现在docker-java
目录下有2个文件:
[root@qikegu docker-java]# ls
Dockerfile Qikegu.java
4. 构建 Docker 镜像
切换到docker-java
目录,运行docker build -t qikegu-java .
命令,构建Docker镜像。Docker镜像可以任意取名,此处命名为qikegu-java
。
[root@qikegu docker-java]# docker build -t qikegu-java .
Sending build context to Docker daemon 3.072kB
Step 1/5 : FROM java:8
---> d23bdf5b1b1b
Step 2/5 : COPY . /var/www/java
---> Using cache
---> 7f24b5fc6fb6
Step 3/5 : WORKDIR /var/www/java
---> Using cache
---> 2eacd7222454
Step 4/5 : RUN javac Qikegu.java
---> Using cache
---> bf254a2eec11
Step 5/5 : CMD ["java", "Qikegu"]
---> Using cache
---> 1842ec92df2d
Successfully built 1842ec92df2d
Successfully tagged qikegu-java:latest
[root@qikegu docker-java]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
qikegu-java latest 1842ec92df2d 13 minutes ago 643MB
<none> <none> 327ab0702d14 14 minutes ago 643MB
...
这里,最后使用docker images
查看镜像,可以看到构建镜像成功。接下来就可以运行镜像了。
5. 运行 Docker 镜像
执行docker run qikegu-java
命令运行镜像:
[root@qikegu docker-java]# docker run qikegu-java
This is java docker app - qikegu.com
[root@qikegu docker-java]#
可以看到,qikegu-java
镜像成功运行,输出了一条信息。
最新文章
- ssl双向认证和单向认证原理
- Java在JFinal中出现Can not create instance of class: com.keesail.web.config.WebConfig异常处理方式
- spring的beans.xml中classpath
- Flyer(二分 HDU4768)
- 【DIOCP知识库】连接上下文TIocpClientContext
- asp.net MVC之 自定义过滤器(Filter)
- ERB预处理ruby代码
- php 或js 常用的正则表达式
- [iOS UI进阶 - 0] Quiartz2D
- mac中vmware tools进行磁盘压缩和vmware-tools-cli的使用方法
- SQL SERVER 主键约束
- Annikken Andee–Arduino与Android间的简易连接
- iconv编码转换指令
- JS怎样将拖拉事件与点击事件分离?
- [国嵌攻略][156][I2C自编设备驱动设计]
- 多个DbContext修改同一张表测试
- C#中枚举的使用
- WIN7系统怎样增加C盘空间
- C# 类库调试 启动外部程序无法调试
- JMeter学习(二十九)自动化badboy脚本开发技术(转载)