一.前言
1.什么是docker?
Docker 是一个开源的应用容器引擎,用go语言写的,基于 Linux
内核的一款产品。
2.docker有什么用?
屏蔽操作系统,独立于系统之外,只需要关注于应用层面,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。其实也可以简单理解为单一应用多实例。
docker有三个概念:
- 镜像:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像就相当于Java语言里的类(Class)
- 容器:容器其实就是进程(打开一个应用程序),只不过这个进程是应用在基础层(镜像)之上。容器就相当于Java语言里的根据类创建一个对象。
- 仓库:仓库顾名思义就是用来存储镜像,分发镜像的一个地方。它可以让我们开发者在不同的环境保持一样系统参数或者环境配置。
想更清楚Docker可以去参考官网的文章:前言 · Docker -- 从入门到实践
二.操作流程
1.docker pull tomcat:拉取tomcat镜像
2.docker run --name tomcat1 -p 8080:8080 tomcat:创建tomcat容器
我们也可以在Docker Desktop看到这个tomcat的镜像
3.docker ps:查看创建的容器,可以看到我们建了两个不同端口的tomcat
Docker Desktop点击Containers也是可以查看容器的
4.docker exec -it 173cf2dd080f /bin/bash: (绿色是cantainerId)进入应用程序的目录,找到conf下的server.xml文件进行端口配置,因为tomcat默认端口号8080,开启了两个应用但是端口号都是8080,所以需要修改其中一个端口
修改文件用的是vim指令,需要去下载vim,可以参考下面这篇文章:
Docker容器里的vi/vim命令安装_junmxiao-js的博客-CSDN博客
5.因为webapps是存放web项目的,但是新建的tomcat容器原本的webapps是空文件,可以ls去查看,webapps.dist里面才有默认的web项目,所以需要重命名
cd ../ 回到根目录下
rm -rf webapps 将webapps目录删除
mv webapps.dist webapps 将webapps.dist重命名为webapps
最后我们可以看到成功实现了单应用开多实例的情况,在宿主机我们必须单应用拷贝多个文件目录才可以实现这种情况。