场景描述:java项目war包,在开发开电脑上使用dockerfile构建镜像,上传镜像到客户服务器中使用docker加载docker镜像,然后部署。
目录
一、本地环境安装
docker
git
二、服务器环境安装
docker
三、构建docker镜像(win系统)
四、注意事项
(1)系统架构
(2)使用dockerfile构建失败
(3)数据卷挂载
(4)多容器之间共享数据
(5)docker部署服务之间的通信
(6)获取客户端ip
(7)查看日志
(8) 宿主机和容器之间文件拷贝
(9)容器中的文件修改
(10)idea中使用docke
一、本地环境安装
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 run -d -p 9090:8080 --name nginx nginx:1.0
docker run:这是Docker的运行命令,用于