docker近几年来越来越火,可以先了解一下docker和VM虚拟机的区别,一句话就是,docker是容器,不是虚拟机。另外在使用上,有个区别是虚拟机会占用你比较大的空间,但docker不会,关于他们的对比,还有很多内容,这里主要描述centos安装docker并部署一个jar应用。




centos 安装java 的路径 centos安装jar_centos 安装java 的路径


安装docker

以centos7安装docker为例。

yum install -y docker

我看了几篇安装的文章,有的写得很花哨,比如查看版本,

yum list docker-ce --showduplicates | sort -r

然后再安装docker-re再安装指定版本的docker,其实最开始一句就好。如果有装过,会报错,卸载原安装后再装一般能解决。

安装后可以通过查看版本号docker -version或者

yum list installed | grep docker

查看yum安装完成文件列表的docker安装信息,都是看到对应docker安装版本信息为成功。


centos 安装java 的路径 centos安装jar_web包下载_02


装完后顺便启动一下:

systemctl start docker#查看启动状态systemctl status docker


centos 安装java 的路径 centos安装jar_docker_03


准备jar

这一步在正常情况下,通常我们应用比如springboot应用,Pakage一个包就好了,这里为了简单一点,我新建了一个web应用,没有连数据库,就一个web页面展示,没有任何其他内容。


centos 安装java 的路径 centos安装jar_docker_04


执行打包:

mvn clean package -DskipTests

然后把jar包放docker服务器一起(直接打在一起就当已完成)。

准备JVM环境

可以先看jdk版本pull想要的:

docker search jdk

也可以直接下载比如下载jdk8:

docker pull java:8u111

启动容器

做好上面的准备工作后,就只要启动这个容器了。

我这里是在启动的时候,把jar包加入到容器里,这样做命令有点长,后面会继续使用dockerfile、docker compose还有k8s等内容,使这个事情变得更加快捷和方便。

比如我这里的启动命令:

docker run -d -p 8080:8080 -v /data/app/dockertest/dockertest-0.0.1-SNAPSHOT.jar:/usr/dockertest-0.0.1-SNAPSHOT.jar --name dockertest1 java:8u111 java -jar /usr/dockertest-0.0.1-SNAPSHOT.jar
  • -p 8080:8080 表示把容器端口8080端口映射宿主机的8080端口,注意这里冒号的含义,下面也是一样的格式,一样的含义,前宿主机,后容器;
  • -v /data/app/dockertest/dockertest-0.0.1-SNAPSHOT.jar:/usr/dockertest-0.0.1-SNAPSHOT.jar 表示把宿主机的这个jar文件映射到容器;
  • --name dockertest1 表示容器的唯一名;
  • java:8u111 表示镜像文件的名称和tag;
  • java -jar /usr/dockertest-0.0.1-SNAPSHOT.jar 熟悉的启动jar命令,注意接的是容器的文件路径。


centos 安装java 的路径 centos安装jar_centos 安装java 的路径_05


执行后会返回一串字符串,这个我也不知道是个什么东西,但看起来是成功了。

最后,访问这个地址,可以成功访问。


centos 安装java 的路径 centos安装jar_web包下载_06


补充一张usr目录的截图,进说明是docker容器启动的这个web应用。


centos 安装java 的路径 centos安装jar_centos 安装java 的路径_07