docker以前学习过,不过如果不经常打docker命令的话容易忘记,故总结了此篇文章作为备忘,同时先手看完这篇文章也会大概了解docker是什么以及docker的作用。
docker是一个软件运行的容器,就像docker logo一样,一条鲸鱼上背着一个个互相隔离的集装箱,docker就是这条鲸鱼,软件就是一个个的集装箱,你可以在docker这条鲸鱼上面随意组装你的集装箱。
docker在java开发中最主要的作用 ,就是组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。同时,docker上安装redis,mysql,tomcat等环境十分方便。也支持将你安装好的环境打包成镜像,发布到其他机器上去运行,就不需要没一台机器上都做重复繁琐的安装步骤了,这跟Jvm、Java的“一次编写、到处运行”的理念一致。
以下将docker和java的概念进行类比。
docker主机(Host)
:就是docker软件,安装在linux、win等操作系统之上。类似jvm,只要安装了jvm,jar包就可以在jvm上运行,而无需关心底层操作系统是linux还是windows。
docker镜像(Images)
:docker镜像是用于创建docker容器的模板。类似你编写的java代码,只要有这份代码在,你就可以打包无数个jar包。
docker容器(Container)
:容器是独立运行的一个或一组应用。类似jar包,jar包由java编码编译而来,docker容器也是由docker镜像来创建。docker容器中运行着一个或一组应用,如我们java web应用运行了tomcat、mysql、rabbitmq,其都可以放置在一个容器中运行。
image镜像相关命令
启动容器:docker run --name 容器名 -d tomcat
,从tomcat镜像启动一个容器,--name为容器命名,-d 后台运行,不过,这种启动方式没有暴露端口,外部无法访问tomcat的端口。一般使用这个命令启动,多加几个参数:docker run --name 容器名