DevOps运维实战---jenkins 自动化生成镜像并推送到harbor服务器

这个内容就比较简单了。

之前我们的流程是直接发送 docker-compose命令去编排生成,运行。

在这一节,我们的目的是docker build 生产镜像,然后推送到docker 镜像服务器,然后下一节我们在目的服务器运行sh 文件抓取镜像并且运行。

在构建里面操作。ssh exec command。

cd /usr/local/docker/jenkins_docker/data/workspace/mytest
docker build -t mytest:$tag .

这里我们生成了一个镜像。至于dockerfile 文件和前面保持一致,这里我们删除掉docker-compose 文件了

docker login -u admin -p Harbor12345 192.168.0.51:80
docker tag mytest:$tag 192.168.0.51:80/repo/mytest:$tag
docker push 192.168.0.51:80/repo/mytest:$tag

这里我们登陆harbor 服务器,然后把我们的镜像推送到harbor 服务器。

这里有个需要注意的地方,我们拉取的镜像是要jenkins 容器里面操作的,所以我们需要jenkins 容器能够使用宿主机器的docker,这个地方很重要:

cd /var/run 下面的这个文件 Docker.sock ,把它修改为root :root 并且读写权限。

chown root:root docker.sock

Chmod o+rw docker.sock

修改jenkins 的 docker-compose.yml 文件
加3个 文件映射
- /var/run/docker.sock:/var/run/docker.sock
-/usr/bin/docker:/usr/bin/docker
-/etc/docker/daemon.json:/etc/docker/daemon.json
### 如何在 Eclipse 中生成镜像文件导出 在开发过程中,有时需要将项目的运行状态或 JVM 的内存情况保存下来以便后续分析。以下是关于如何通过 Eclipse 和相关工具生成镜像文件以及导出流程的具体说明。 #### 使用 Eclipse 生成镜像文件 可以通过以下方式实现: 1. **使用 jvisualvm 或 MAT 工具** 可以利用 `jvisualvm` 或者 Eclipse 自带的 Memory Analysis Tool (MAT) 来捕获当前应用程序的堆转储(Heap Dump)。这一步骤可以用来生成 Java 应用程序的内存快照文件[^2]。 ```bash jmap -dump:live,format=b,file=heap_dump.hprof <PID> ``` 上述命令中的 `<PID>` 是目标 Java 进程的进程 ID。执行该命令后,将会生成名为 `heap_dump.hprof` 的堆转储文件[^4]。 2. **配置 Eclipse 插件** 如果希望直接在 Eclipse 内部完成这一操作,则需安装 MAT 插件。安装完成后,在调试模式下启动应用,通过菜单选项触发 Heap Dump 捕获功能。 #### 导出镜像文件的流程 对于 Docker 容器环境下的镜像文件导出,具体步骤如下所示: 1. **保存现有镜像至本地 tar 文件** 利用 `docker save` 命令来创建指定镜像的存档副本。例如,如果想要保存 CentOS 镜像为 `.tar` 文件,可以按照下面的方式操作[^3]: ```bash docker save -o centos_7.4.tar centos:latest ``` 2. **加载已有的镜像档案** 当需要重新导入之前保存下来的镜像时,可通过 `docker load` 实现反向过程: ```bash docker load --input centos_7.4.tar ``` 3. **容器实例化后的数据备份** 若关注的是某个正在运行容器内部的数据而非整个镜像本身,那么可以选择另一种方法——即基于特定容器ID将其文件系统导出成压缩包形式: ```bash docker export 654f8008e7a4 > nginx.bak.tar ``` 以上便是完整的从 Eclipse 环境中生成镜像文件及其导出的相关指导。 ```python # 示例 Python 脚本展示如何调用外部命令生成 heap dump import os pid = 'your_java_process_id' output_file = 'heap_dump.hprof' command = f'jmap -dump:live,format=b,file={output_file} {pid}' os.system(command) print(f"Heap dump has been generated as {output_file}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值