咖啡汪日志:如何生成并在局域网内部署 docker 镜像,数据源配置启动时注入

Hello, 大家好!
我是不作死就不会死,智商不在线,但颜值超有品的拆家队大队长 ——咖啡汪 Husky Yue
一只不是在戏精,就是在戏精路上的极品二哈
今天给大家带来的,是jar 包生成docker镜像,数据源配置启动时注入,docker镜像存入本地文件夹并重新加入入docker之中的简易教程
在这里插入图片描述

1、需要将数据库连接的url, username, password 全部设置为从环境变量中获取,以方便后面启动镜像时,对这些参数进行修改。
在这里插入图片描述

2、在桌面新建一个文件夹,更名为“docker-build”
(1)把打好的jar包拖进去
(2)新建一个文本文档,把他的名字“新建文本文档.txt” 改为“Dockerfile”,注意Dockerfile是没有任何后缀的。
(3)Dockerfile 内容如下:

### this is a simple contract 

FROM java:8

## auth
MAINTAINER Husky Yue
 
VOLUME /tmp
 
ADD contract-4.6.0.jar app.jar

EXPOSE 9107



ENTRYPOINT ["java","-jar","/app.jar"]

(4)点击空白位置,按住shift键不放,点击鼠标右键,选择“在此处打开PowerShell”;
或者你也可以CMD 打开命令窗口,然后进入当当前新建的这个文件夹"docker-build"下。
执行指令:
docker build -t contract:1.0.0 .
注意: -t 是tag 打标签 , 最后的“.”是指当前目录下。

在这里插入图片描述
3.启动镜像
(1)先查看镜像
在这里插入图片描述
(2)启动镜像
注意:& 需要用双引号包起来哦。

不允许使用与号(&)& 运算符是为将来使用而保留的;请用双引号将与号引起来("&"),以将其作为字符串的一部分传递。
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : AmpersandNotAllowed

示例:
docker run -d -p 9107:9107 --name contractv1.0.0 -e MYSQL_URL=jdbc:mysql://10.0.75.1:3306/ry_contract?useUnicode=true"&"characterEncoding=utf8"&"zeroDateTimeBehavior=convertToNull"&"useSSL=true"&"serverTimezone=GMT%2B8 -e MYSQL_USER=root -e MYSQL_PASSWORD=123456 804002992bd2

804002992bd2是要启动镜像的id

其中:
MYSQL_URL的值为:jdbc:mysql://10.0.75.1:3306/ry_contract?useUnicode=true"&"characterEncoding=utf8"&"zeroDateTimeBehavior=convertToNull"&"useSSL=true"&"serverTimezone=GMT%2B8
MYSQL_USER的值为root
MYSQL_PASSWORD的值为:123456

分别对应我们程序中yml 中的环境变量,如下:
在这里插入图片描述
4、启动成功后,可在Portainer 中查看log
在这里插入图片描述
5、docker 镜像保存到本地文件夹
docker save -o 要保存的文件名 要保存的镜像
示例:
docker save -o contract-v1.0.0.tar 804002992bd2
在这里插入图片描述
文件会保存在当前所在的文件目录下:
在这里插入图片描述
6、本地镜像文件,导入docker
在.tar 镜像文件所在的文件夹下,执行
docker load --input 文件名

Guess you like

Origin blog.csdn.net/weixin_42994251/article/details/115195922