背景上周看麦麦的时候,看到了下面这个帖子。leader要求做项目容器化,但是host从来没有做过。他害怕新事物,所以他害怕,然后就把机会白白给了其他同事。我想我也是如此。刚来阿里工作的时候,一个很好的项目机会来了,领导让我去做。总觉得准备要花时间,准备好了才会等。然后等啊等啊,项目给别人做了,别人长大了,我却胆小了,停了下来。现在领导也时不时拿这事取笑我。..所以,我们的主要目的是学习和成长。本周,我们将根据脉脉的帖子内容,学习容器化并实践。Docker容器化一、什么是docker?做Java开发的同学应该都知道,Java代码需要在服务器端运行。首先打包成jar包,然后通过java-jarxxx.jar命令运行,将jar文件存放到虚拟机中。跑步。虚拟机是将一套硬件虚拟出来后,在上面运行一个完整的操作系统,比如阿里云ECS服务器。docker容器不需要虚拟硬件,而是直接在宿主机内核上运行容器中的进程,因此容器比传统的虚拟机更轻量。下图是传统虚拟化和Docker容器的对比:2.docker创建镜像并安装docker。你可以自己搜索。安装完成后,我们以京豆脚本的代码为例。这一步将精豆脚本的jar包构建为镜像,并在项目目录下创建一个Dockerfile文件,文件内容如下,注释中已经说明了每一行的作用#Usejdk8asthebaseimageFROMopenjdk:8#SpecifytheauthorMAINTAINERdnboy#Exposurecontainerport8080EXPOSE8080#指定的docker-demo-会被复制0.0.1-SNAPSHOT.jar是容器中的job.jar,相当于复制到容器中取别名ADD./target/application.jar/application.jar#相当于用cmd命令执行容器中的jar包规范外部配置文件ENTRYPOINT["java","-jar","/application.jar"]然后在命令行执行如下命令:dockerbuild-tjdou这一步将jdk和jar包都构建成一个docker镜像,镜像名称为jdou3。上传镜像上一步中的镜像可以在本地docker中运行。为了使镜像公开并可供所有人使用,需要将镜像上传到dockerhub。具体步骤为(1)给镜像打标签,执行命令行#修改标签,例子:dockertagae4ed59cdnboy985/jdou:1.0dockertagIMAGEID(mirrorID)repository:label#给镜像打标签,例子:dockertagdnboy985/jdou:1.0dnboy985/jdou:v1.0dockertag
