Docker部署(1)——将jar包打成docker镜像并启动容器

        在代码编写完成即将部署的时候,如果采用docker容器的方法,需要将jar包打成docker镜像并通过镜像将容器启动起来。具体的步骤如下。

一、首先下载java镜像

        先使用docker search java命令进行搜索。

Docker部署(1)——将jar包打成docker镜像并启动容器_第1张图片

         然而在拉取镜像的时候要注意不能直接去选择pull java ,不然会出现manifest for java:latest not found: manifest unknown: manifest unknown 的报错。

Docker部署(1)——将jar包打成docker镜像并启动容器_第2张图片

 正确的做法是:在search的时候指明好版本,然后在进行pull操作。

docker search jdk8
Docker部署(1)——将jar包打成docker镜像并启动容器_第3张图片

         然而在pull的时候,发现还是超时了,出现这种情况一般是没有配好镜像源或者配置的镜像源失效了。

Docker部署(1)——将jar包打成docker镜像并启动容器_第4张图片         我打开镜像源进行查看,并且对镜像源进行ping的操作,然而发现前面两个镜像都能 ping通,但后面尝试继续去pull 镜像,发现仍然失败,最后我只保留了自己配置的阿里云镜像,发现可以正常pull 成功。(这里我其实也没有弄的很明白,原来配置了三个镜像源地址反而pull不成功,而且前面两个地址可以ping通,但是发现这几个网站单独并不能打开)

Docker部署(1)——将jar包打成docker镜像并启动容器_第5张图片

改成一个镜像后再search 和 pull 好了

Docker部署(1)——将jar包打成docker镜像并启动容器_第6张图片

Docker部署(1)——将jar包打成docker镜像并启动容器_第7张图片

 二、新建一个工作目录,将jar包拷贝进去

 三、新建一个Dockerfile文件

文件内容如下:

FROM dockette/jdk8
WORKDIR /test
COPY  jx-system-0.0.1-SNAPSHOT.jar   /test/jx-system-0.0.1-SNAPSHOT.jar
CMD ["java","-jar","jx-system-0.0.1-SNAPSHOT.jar","-Dfile.encoding=utf-8"]

Docker部署(1)——将jar包打成docker镜像并启动容器_第8张图片

代码解释

  • FROM dockette/jdk8 ——表示基于dockette/jdk8镜像构建
  • WORKDIR /test ——表示指定容器内的工作目录为/test
  • COPY ——拷贝jx-system-0.0.1-SNAPSHOT.jar到容器工作目录/test
  • CMD ——执行java启动jar的指令。

 四、构建镜像并启动容器

docker build -t app-docker .

表示从当前目录构建镜像,这条命令会把当前目录下文件全部打包发送到docker引擎服务端,然后在服务端根据Dockerfile进行构建操作。

Docker部署(1)——将jar包打成docker镜像并启动容器_第9张图片

        而命令 docker run -it --network my-net  -p 20233:20233 --name appd -d app-docker 表示把容器启动起来。根据刚才的Dockerfile配置,容器生成后,必然会在容器根目录下生成test目录,并且test目录下存在app.jar文件,容器执行CMD定义的指令也是基于test目录的。

完成之后可进入容器内部查看

docker exec -it app /bin/bash

你可能感兴趣的:(Linux,docker,java,运维,容器)