Docker
Docker
docker 是一个开放源代码软件项目,基于GO语言
docker 可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,
docker打包好了的容器,可以发布到任何流行的linux机器上,也可以实现虚拟化
容器是完全使用沙箱机制,相互之间不会有任何接口(类似手机的app)
docker容器性能开销极低,这个才是关键
docker从17.03版本之后分为ce和ee,我们用ce社区版就可以了
docker使用客户端-服务器(c/s)架构模式,使用API来管理和创建docker容器。
k8s:对容器的编排管理
2 docker与传统的vm对比
启动速度
vm 一般几十秒,或者几分钟
docker 毫秒级
传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(virtualBox和VMWare等),创建虚拟机(虚拟出各种硬件),在虚拟机上安装操作系统,再从操作系统中安装部署各种应用。
docker应用场景
Web应用的自动化打包和发布
自动化测试和持续集成,发布
在服务型环境中部署和调整数据库或其他的后台应用
使用docker可以实现开发人员的开发环境,测试人员的测试环境,运维人员的生产环境的一致性。
docker的组成
docker镜像images, docker镜像是用于创建Docker容器的模板,镜像是基于联合文件系统的一种层式结构,由一系列指令一步步构建出来
docker 容器container, 容器是独立运行的一个或一组应用。镜像相当于类,容器相当于类的实例
docker客户端, docker客户端通过命令行或者其他工具使用Docker API与docker的守护进程通信
docker主机,一个物理或者虚拟的机器用于执行docker守护进程和容器。
docker守护进程,是docker服务器端进程,负责支持docker容器的运行以及镜像的管理。
docker仓库dockerHub, docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。docker hub提供了庞大的镜像集合供使用。用户也可以将自己本地的镜像推送到docker仓库供其它人下载
开发提供了jar包和数据库文件,怎么部署到docker
1 首先通过xftp把数据库和jar包上传到云服务器
db_shopping.sql 和Shopping.war
2 制作镜像
创建tomcat 镜像
输入命令
vi Dockerfile-tomcat
在编辑模式输入以下内容:
FROM tomcat
COPY Shopping.war /usr/local/tomcat/webapps
保存后退出
输入命令:(注意,最后面有个 . 不能少)
docker build -f Dockerfile-tomcat -t tftomcat:v1 .
创建mysql 镜像
vi Dockerfile-mysql
输入内容:
FROM mysql:5.7
WORKDIR /docker-entrypoint-initdb.d
ADD db_shopping.sql .
执行构建命令
docker build -f Dockerfile-mysql -t tfmysql:v1 .
项目运行,启动数据库和tomcat里面的项目
1 启动数据库
第一步 创建数据存放目录
mkdir -p /tfproject/mysql/data
第二步:创建并运行mysql 容器,同时设置密码123456
docker run -di --name tfmysqlA -v /tfproject/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 tfmysql:v1
2 启动tomcat里的项目,并且连接mysql数据库
docker run -di --name tftomcatAA -p 8082:8080 --link tfmysqlA tftomcat:v1
访问项目服务:
http:ip:8082/Shopping/
如果访问不了,注意关闭防火墙,开放端口(阿里云安全组设置)
systemctl stop firewalld
镜像导出文件分享给其他人,(也可以上传到镜像库)
#导出镜像
docker save -o tftomcat1.tar tftomcat
#加载恢复镜像
docker load -i ftomcat1.tar