Docker的使用可以将应用程序做成镜像,这样可以将镜像发布到私有或者公有仓库中,在其他主机上也可以pull镜像,并且运行容器,运行程序。本文主要简单介绍一下如何通过Docker将Java程序创建成一个镜像。
1.建立工作目录
cd java_demo
2.编写程序
由于简单演示,主要写一个Main.java的程序,代码如下:
import java.util.*;
public class Main{
public static int solve(int a,int b){
int ans = 0;
for(int i=0;i<=a;i++){
ans=ans+a*b;
}
return ans;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(solve(a,b));
}
}
3.Dockerfile文件的编写
FROM java:latest
#将当前目录复制到/usr/src/myapp
COPY . /usr/src/myapp
#建立工作目录
WORKDIR /usr/src/myapp
#运行命令
RUN javac Main.java
#自启动命令
CMD ["java","Main"]
4.制作镜像
cd ~
cd java_demo
sudo docker build -t my-java:first .
查看本地镜像:
5.上传镜像到私有仓库
私有仓库的建立已经在前面详细介绍过了,有需要的可以看Ubuntu中利用Docker建立一个私有仓库(可以供远程访问)一文,这里私有仓库的EndPoint(ip:port)为218.197.198.84:5000。
sudo docker tag my-java:first 218.197.198.84:5000/my-java:first
sudo docker push 218.197.198.84:5000/my-java:first
检测私有仓库有没有该镜像:
curl 218.197.198.84:5000/v2/_catalog
curl 218.197.198.84:5000/v2/my-java/tags/list
6.测试验证
在一台安装了Docker的win10主机上下拉镜像并运行容器进行验证。
docker pull 218.197.198.84:5000/my-java:first
docker run -it 218.197.198.84:5000/my-java:first