docker在服务部署中是比较方便,并且在部署过程中出现问题的几率较低。
本文对基础的docker项目部署做简单介绍
1、安装docker和docker-compose,网上都有自行搜索
2、拉取官方镜像
①、拉官方镜像需要有镜像服务器,没有镜像服务器会报错,好用的镜像服务器都是收费的,不收费的大部分用不了,一般公司都会有自己的私有镜像仓库,可以保存好自己的一些常用的镜像,比如mysql、nginx、mqtt、rabbitmq等。(这里博主是踩过坑的,没有镜像服务器,很操蛋,就是拉不下来)
②、拉拉取镜像后加通过docker load -i XXX.tar加载到服务器镜像里。
③、配置Dockerfile如下文件名:Dockerfile
# 使用官方的OpenJDK镜像作为基础镜像 FROM jdk:11 (此处可以是本地镜像)RUN mkdir /xxx (包的位置) EXPOSE 13666# 复制本地的app.jar文件到镜像中的/app目录下 COPY ./xxx.jar(要打入的jar包) /xxx/xxx.jar 复制到镜像目录# 设置工作目录为/app WORKDIR /xxx (工作目录)# 配置容器启动时运行java命令运行JAR文件 CMD ["java", "-jar", "xxx.jar"]
④、配置compose启动文件 文件名:docker-compose.yaml
version: "3"services:xxx(工程名称):image: xxx:1.3.23 (镜像名称和版本)privileged: trueports:- 13666:13666 (容器内部和外部端口,左边外部,右边内部)container_name: xxx (容器别名)#文件挂载地址,尽量不要修改,左侧为宿主机,右侧为容器内部volumes:- /etc/localtime:/etc/localtime- ../jre1.8/:/jre1.8/- ./xxx/:/xxx/ (jar包目录)restart: alwaysenv_file:- ./xxx.env (外部配置文件)networks:- sinomis-bridge-network networks:sinomis-bridge-network:external:name: sinomis-bridge-network
⑤、创建xxx目录与compose文件中的jar包目录一致,然后把jar包放入文件夹内,确保文件夹xxx和docker-compose.yaml、Dockerfile在同一目录,注意:如果拉取不到jdk的镜像,用离线的方式拿到jdk的镜像文件加载到docker 里也是可以的。
⑥、使用构建镜像的命令把项目打包进已准备好的jdk镜像中,命令如下;
docker build -t xxx(镜像名称)
⑦、构建完成后就可以启动了,编写自己的env配置文件,项目会优先引用env配置文件中的配置,示例如下:
#nacos地址 NACOS_CONFIG_SERVER_ADDR=nacos:8848 #nacos用户名(未开启鉴权时,请不要输入) NACOS_USERNAME= #nacos用户名(未开启鉴权时,请不要输入) NACOS_PASSWORD= #nacos命名空间 NACOS_CONFIG_NAMESPACE=47dfcc84-3d34-4587-9420-3692a222ea32 #nacos命名空间group NACOS_CONFIG_GROUP=sinomis
⑧、也可以导出为镜像tar包,进行跨服务器部署,到处命令如下:
docker save -o myimage_latest.tar myimage:latest
命令解释:要导出名为 myimage:latest
的 Docker 镜像到一个名为 myimage_latest.tar
的 tar 文件中
至此,大功告成!