docker近几年来越来越火,可以先了解一下docker和VM虚拟机的区别,一句话就是,docker是容器,不是虚拟机。另外在使用上,有个区别是虚拟机会占用你比较大的空间,但docker不会,关于他们的对比,还有很多内容,这里主要描述centos安装docker并部署一个jar应用。
![a152a5d1855d1c19a3925f7a763a0706.png](https://i-blog.csdnimg.cn/blog_migrate/50d2789736b49e0df75de9547caabbc4.jpeg)
安装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安装版本信息为成功。
![95b995fa0e511c6cbbbeeeadd4698485.png](https://i-blog.csdnimg.cn/blog_migrate/49144cc27db5ba0fbccb04c6f1291350.jpeg)
装完后顺便启动一下:
systemctl start docker#查看启动状态systemctl status docker
![9308ee8eab9df48af1f1b80197d1e8a3.png](https://i-blog.csdnimg.cn/blog_migrate/8aca08526211693ac222757382008cf4.jpeg)
准备jar
这一步在正常情况下,通常我们应用比如springboot应用,Pakage一个包就好了,这里为了简单一点,我新建了一个web应用,没有连数据库,就一个web页面展示,没有任何其他内容。
![4318eae0d960a378157eb03ff1cc72d5.png](https://i-blog.csdnimg.cn/blog_migrate/ec550bd8bfbf99a79f858ae0ef2531f9.jpeg)
执行打包:
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命令,注意接的是容器的文件路径。
![c07be85a0de7d4d15adf4f77fd8598d9.png](https://i-blog.csdnimg.cn/blog_migrate/e86f820d5a399e93f05a27e146949f03.jpeg)
执行后会返回一串字符串,这个我也不知道是个什么东西,但看起来是成功了。
最后,访问这个地址,可以成功访问。
![6cd2c44349a0d03c20273991e3487fb3.png](https://i-blog.csdnimg.cn/blog_migrate/70f1c2c77612633960da84e6fc701320.jpeg)
补充一张usr目录的截图,进说明是docker容器启动的这个web应用。
![47a6320cd77694f70bbb0b92f7031149.png](https://i-blog.csdnimg.cn/blog_migrate/da5f52a990926a7ac563d769a5c45d72.jpeg)