docker虚拟化技术-windows使用docker-compose启动微服务
为什么使用docker?
Docker是一个虚拟化的容器,将app交由给指定docker容器可以达到:
- 1.启动app的物理服务器只需要安装docker-engine就可以部署服务。
- 2.如果app是集群可以做到app依赖的os,java_version全部一致。
- 3.Docker容器可以到处赋值运行,能很快模拟现实环境。
基础概念
首先,需要安装docker:https://docs.docker.com/
然后,通过docker version 命令确保安装成功。切记windows用户在powershell中执行docker命令,不能通过cmd执行。
我们要知道docker和maven一样拥有自己的仓库,只不过docker的仓库存储的是官方镜像,maven存储的是jar。
每个镜像都拥有自己的特性,比如有的镜像安装了tomcat,有的镜像安装了java。但是只有镜像还不够,我们需要在镜像中加入自己的app,app的形态可以是jar,也可以是war。
制作镜像 - jar文件:
镜像制作需要用的docker build 命令:
1.创建一个文件夹:Dockerfile文件是用于制作镜像使用的文件,seckill.jar是需要拷贝到镜像中的app。
dockerfile:
第一行:表明该镜像源于 hub.c.163.com/library/java:openjdk-8-jre-alpine ,而这个基础镜像包含java的运行环境。也就是为我的app提供java环境。
第二行:将当前目录下的seckill-0.0.1-SNAPSHOT.jar复制到镜像中/opt/webapps/seckill/seckill.jar。
第三行:在镜像开始运行时执行的命令,这个命令是启动app。
执行以下命令完成制作:
制作镜像 - war文件:
与jar类似,只需要修改dockerfile即可:
运行制作好的镜像
Docker-compose启动一组镜像
我们拥有的是一组微服务,每次单个启动镜像很麻烦,所以就需要用到docker-compose。
- 首先,我们要拥有已经制作完成的镜像
- 然后,编写docker-compose.yml文件(注意yml的格式),这个文件里包含了会启动那些镜像
- 然后进入到docker-compose.yml文件所在的文件夹,执行docker-compose up 命令
docker-compose.yml文件内容:
启动:
记住,要执行docker-compose相关的命令需要进入docker-compose.yml文件所在的文件夹。