持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
在windows系统中,
- 1、下载jdk包。2、配置jdk环境。3、tomcat部署java项目
- 在linux环境中需要再配置一遍,各种环境版本也要相同。
dockerfile:jdk环境、其他配置。(镜像文件),直接就可以在linux系统运行。
优点:
- 简化配置 安装创建非常的方便
- 代码流水线(Code Pipeline)管理 传统项目部署可能需要经过很多环节,
- 容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少
- Devops 开发与运维一体化减少沟通的成本 (docker或者是k8s实现)
- 虚拟技术 快速部署
- 弹性扩容
Docker的三大核心要素:
1、仓库----类似腾讯管家软件市场,专门存放镜像文件 2、镜像----类似于安装包,描述运行所需要的环境配置和依赖。 reids镜像、tomcat镜像 方式来源: A、springboot项目(自己创建一个镜像文件) B、Dockerhub仓库下载 3. 容器----运行我们的镜像文件,自己独立的ip和网络信息,虚拟化出一个轻量级的linux操作系统精简版本。
docker pull先查看本地是否存在镜像文件,如果没有就去仓库下载到本地
- 从两者的架构图上看,虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器。
- Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算。
- Docker所用的资源更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。
- 虚拟机实现了操作系统之间的隔离,Docker是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。
- 虚拟机和Docker各有优势,不存在谁替代掉谁的问题,很多企业都采用物理机上做虚拟机,虚拟机中跑Docker的方式。
docker常见命令:
docker images 查看本地镜像文件
docker search mysql 查找镜像文件 latest表示最新的镜像文件
docker pull tomcat 下载镜像文件 没有设置版本号,默认最新的版本
docker pull tomcat:8 指定下载tomcat8版本。
docker images -q ---只显示镜像的id
docker rmi 镜像的id 删除镜像文件
docker run tomcat 运行容器 如果本地没有tomcat镜像文件,会去dockerhub查找下载到本地,如果dockerhub没有就会报错。
docker ps 查看运行的容器
docker inspect 容器id 查看容器信息,可以看到容器的ip地址信息
docker exec -it [CONTAINER ID] bash 进入容器中
进入容器后,ip addr 可以看到容器有自己的独立ip
docker stop 容器id 停止容器运行,但还是存在,只是停止而已
docker run --name my-tomcat tomcat 运行容器,并且给容器别名,存在后,不能继续创建docker rm 容器id 删除容器,删除容器后,再去创建相同名称的容器就会成功了
docker run --name my-tomcat -p 8081:8080 -d tomcat
-p(指定容器端口号,将容器内部映射到外部,外部可以直接访问容器)
-d(后台启动)
8081(容器外部或者linux虚拟机访问的端口号 宿主机)
8080(容器内部端口号)
在容器外部,直接curl 127.0.0.1:8081就可以直接访问成功了