项目部署到docker步骤及命令
一、前言
本篇以JAVA项目为例,概括项目从打包打部署到docker所有步骤及命令。
二、项目打包
先将项目打包为jar包,通过xftp把jar包上传至(Linux)服务器目录。
三、创建DockerFile文件
- 在jar包所在的位置创建一个Dockerfile 文件,要保证jar包和Dockerfile 在同一个目录下。
- 编辑DockerFile配置文件。
四、将镜像上传镜像仓库
1.生成文件的docker镜像,并且修改镜像tag。
docker build -t bot-explain-manager:v1.0 . #注意最后有个 . 代表路径,不能遗漏了 docker tag bot-explain-manager:v1.0 80.68.64.xxx:xxxx/application/bot-explain-manager:v1.0 #前面为原来的镜像名,后面为修改后的镜像名,一定要带上版本号。 #80.68.64.xxx:xxxx镜像仓库的端口号,便于后面上传镜像仓库(如harbor) docker images #查看现有镜像
2.将镜像上传镜像仓库
#先修改配置文件,配置私有仓库,不然无法访问仓库 vim /etc/docker/daemon.json # 添加配置 "insecure-registries": [ "192.xxx.xx.135" ]
3.重启docker
#重启docker systemctl restart docker
4.登入仓库并将镜像上传
#登入镜像仓库 docker login 192.xxx.xx.XXX #docker push上传镜像 docker push 80.68.64.xxx:xxxx/application/bot-explain-manager:v1.0
五、在服务器上拉取镜像
1.连接部署服务器
#ssh连接服务器,需要密码 sudo ssh -p 22 root@124.xx.xx.237
2.在部署的服务器上拉取镜像
同第四步:先修改配置文件,配置私有仓库,添加配置,重启docker,登入镜像仓库 #docker pull拉取镜像 docker pull 80.68.64.xxx:xxxx/application/bot-explain-manager:v1.0
3.启动容器
#注意docker run可能遇到问题 #1.前端文件 #-d保证后台运行,-p指明端口号 #-p 小写p表示docker会选择一个具体的宿主机端口映射到容器内部开放的网络端口上。 #-P 大写P表示docker会随机选择一个宿主机端口映射到容器内部开放的网络端口上。 #宿主机的一个端口只能映射到容器内部的某一个端口上,比如:8080->80之后,就不能8080->81 #容器内部的某个端口可以被宿主机的多个端口映射,比如:8080->80,8090->80,8099->80 docker run -d -p xx:xxx 80.68.64.xxx:xxxx/application/bot-explain-manager:v1.0 #2.后端文件 #最后加上bin/sh防止后台认为容器无任务,,将容器终止 docker run -d -it -p xx:xxx 80.68.64.xxx:xxxx/application/bot-explain-manager:v1.0 bin/sh #检查容器是否生成 docker ps docker ps -a
4.修改配置文件
#进入容器 docker exec -it containerID /bin/bash #安装vim,便于直接在容器内修改文件 https://www.cnblogs.com/adawoo/p/13949419.html #很完整,可参考 #修改完后重启容器 docker restart containerName