场景描述:java项目war包,在开发开电脑上使用dockerfile构建镜像,上传镜像到客户服务器中使用docker加载docker镜像,然后部署。
目录
一、本地环境安装
docker
(1)本地开发电脑中要安装docker
链接下载
https://docs.docker.com/desktop/install/windows-install/
(2)安装docker
docker官方有详细的安装步骤,可视化安装和命令安装都非常详细,就在下载链接中拉到最下即可看到。
(3)验证
docker --version #出现版本号代表安装完成
git
(1)下载https://git-scm.com/download/ (这里演示win 64-bit)
(2)下载完成后安装即可,点击下一步即可
(3)在IDEA中使用Git
在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要在IDEA中配置Git。
(4)IDEA中使用Git,本地项目初始为仓库推送到远程仓库
项目初始为git本地仓库、项目内容提交到本地仓库、关联远程仓库、提交到远程仓库
1.项目初始化为本地仓库,在IDEA中打开一个项目,按下图步骤操作,弹出对话框,选择要初始化为本地仓库的项目文件夹,点击确认
2.项目内容提交到本地仓库,完成第一步IDEA右侧上面会出现绿色对勾,点击对勾
3.本地仓库提交到远程仓库,点击Push弹出对话框
4.此时Push,IDEA会报一个错误,意思就是本次推送内容被拒绝,意思就是本地仓库和远程仓库版本不一样,文件信息不一样(比如远程仓库中有的文件,本地没有,那么直接push,本地覆盖远程的,肯定不允许),所以要先拉取远程仓库的版本信息,和远程仓库的文件合并到本地
只需要在IDEA中点击Terminal按钮,依次输入以下3条命令
git pull
git pull origin master
git pull origin master --allow-unrelated-histories
第一句:用于从远程获取代码并合并本地的版本。
第二句:将远程主机 origin 的 master 分支拉取过来,与本地的当前分支合并。
第三句:合并
5.此时再次Push就可以把本地仓库的内容推送到远程仓库
IDEA顶部工具栏VCS->Git->Push->Push
二、服务器环境安装
docker
(1)安装docker
使用 yum install docker-ce 命令安装
安装完成后启动docker 使用service docker start 命令
(2)验证使用docker -version 出现版本号代表安装完成
三、构建docker镜像(win系统)
(1)编写docker file
如在D:/docker/目录下存放ROOT.tar , 同时在D:/docker/目录下创建dockerfile1.txt
FROM:基础镜像
COPY:把当前目录下ROOT.war 拷贝到容器的/usr/local/tomcat/webapps/(这个路基不用修改)
EXPOSE:容器对外暴漏的端口
CMD:容器启动时执行的命令
FROM tomcat:9.0
COPY ROOT.war /usr/local/tomcat/webapps/
EXPOSE 9090
CMD ["catalina.sh", "run"]
(2)构建镜像
-t :要构建的镜像名字
-f:指定docker file
. :当前目录
docker build -t nginx:1.0 -f dockerfile1 .#构建镜像
(3)镜像归档
-o:下载的位置,可以写全路径如D:/test/cadre.tar,不写路基就指当前目录
cadre:1.0:镜像版本
docker save -o nginx.tar nginx:1.0 #dockerfile构建好的镜像下载到开发机器上
(4)加载一个镜像
构建好的镜像已下载到你开发的机器上,将这个镜像tar包发送给客户后,客户上传到服务器上使用如下命令将镜像加载到本地docker仓库
docker load -i nginx.tar
(5)将一个正在运行的容器,成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 镜像名:版本号
如下
docker commit -m="add vim命令" -a="没有腰的嘟嘟嘟" 237123hjgj23s nginx:2.0
(6)启动容器
docker run -d -p 9090:8080 --name n