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