美文网首页
【DevOps】第二步:Docker镜像打包上传至仓库

【DevOps】第二步:Docker镜像打包上传至仓库

作者: kekefund | 来源:发表于2019-08-09 07:57 被阅读0次

镜像仓库

镜像仓库有好些地方可以存,大部分的公有云均提供免费的镜像仓库,常见如下:

打包上传shell脚本

统一打包流程,每个项目中添加make.sh脚本文件,一个典型的make文件如下:

#!/bin/sh
echo "开始制作镜像..."
image_tag=`date +%Y%m%d` #_%H%M
echo "当前时间:$image_tag"
docker build -t ccr.ccs.xxx.com/abc/api:v${image_tag} .
echo "制作镜像成功!"
 
echo "登录"
docker login
echo "镜像版本提交"
docker push ccr.ccs.xxx.com/abc/api:v${image_tag}
 
echo "镜像最新版本提交"
docker tag ccr.ccs.xxx.com/abc/api:v${image_tag} ccr.ccs.xxx.com/abc/api:latest
docker push ccr.ccs.xxx.com/abc/api:latest

注:Dockerfile和make.sh在同一目录下。

docker build 命令用法

docker build [OPTIONS] PATH | URL | -
  • 命令参数
命令, 缩写 描述
--add-host 增加自定义主机和IP映射(host:ip)
--build-arg 设置构建时的变量
--cache-from 用于缓存资源的镜像
--cgroup-parent 可选的容器上层cgroup
--compress 使用gzip 压缩构建context
--cpu-period 限制CPU CFS(完全公平调度程序)周期
--cpu-quota 限制CPU CFS(完全公平调度程序)配额
--cpu-shares , -c CPU共享(相对权重)
--cpuset-cpus 允许执行的CPU (0-3, 0,1)
--cpuset-mems 允许使用的内存 (0-3, 0,1)
--disable-content-trust true 忽略镜像验证
--file , -f Dockerfile名称 (默认 ‘PATH/Dockerfile’)
--force-rm 始终移除中间容器
--iidfile 镜像ID写入文件
--isolation 容器隔离技术
--label 设置镜像metadata信息
--memory , -m 内存限制
--memory-swap 交换限制等于内存加交换,“-1”:启用无限制交换
--network 在生成期为RUN指令设置网络模式 (API 1.25+)
--no-cache 不使用缓存
--output , -o 输出(格式:type=local,dest=path) (API 1.40+)
--platform 如果支持多平台,则设置 (experimental (daemon)API 1.32+)
--progress 默认auto,设置进度输出类型 (auto, plain, tty).
--pull 总是尝试拉取最新的镜像版本
--quiet , -q 不输出构建过程,成功时直接打印镜像ID
--rm 默认true,构建成功后删除中间容器
--secret API 1.39+ Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret
--security-opt Security options
--shm-size Size of /dev/shm
--squash experimental (daemon)API 1.25+ Squash newly built layers into a single new layer
--ssh SSH agent socket or keys to expose to the build (only if BuildKit enabled)
--stream (experimental (daemon)API 1.31+ ) Stream attaches to server to negotiate build context
--tag , -t 镜像名和tag,格式为‘name:tag’
--target Set the target build stage to build.
--ulimit Ulimit 选项

参考已有的范例,Dockerfile和shell脚本只需要简单熟悉一下即可编写。
这一步很关键,是自动打包的根本。make.sh脚本灵活,可执行配置文件的替换,多镜像版本的生成等自定义操作。相比自动化构建平台基于Dockerfile和git commit来构建更具灵活性。

jenkins job配置

源码管理

jenkins会将git项目拷贝至job目录下。


image

构建触发器

jenkins定时检测代码变动(这里是每分钟检测一次),如果发现有代码提交记录,则触发下一步的构建。


image

构建

构建包括2部分:

  • SSH site: SSH的主机地址
  • Command: 在主机上执行的命令


    image

构建日志

image

打包流程

  1. 提交代码

  2. jenkins每分钟检测git仓库分支的代码变动

  3. 若有代码提交记录,触发下一步构建

  4. 构建过程调用项目的make.sh文件,执行镜像打包上传

image

参考

https://docs.docker.com/engine/reference/commandline/build/

相关文章

  • 【DevOps】第二步:Docker镜像打包上传至仓库

    镜像仓库 镜像仓库有好些地方可以存,大部分的公有云均提供免费的镜像仓库,常见如下: 腾讯云:https://con...

  • Docker-容器

    应用程序打包生产镜像后,上传到Docker仓库,再从Docker仓库将镜像下载到本地,以镜像为模板可以创建容器,容...

  • Docker入门

    Docker概述 Docker为什么会出现? 将项目打包并带上部署环境(镜像),上传到Docker 仓库,下载镜像...

  • 使用Docker在Linux环境中部署应用

    部署方案 步骤 本地搭建Docker环境 本地编译出Docker镜像 将编译出的Docker镜像上传至仓库 登录云...

  • 【docker学习笔记九】Docker的registry私服

    1、私有仓库搭建与配置 2、镜像上传至私有仓库 格式是:docker tag (镜像的名字/id):tag ip...

  • Docker之八私有仓库

    个人专题目录 Docker 私有仓库 1. 私有仓库搭建 2. 将镜像上传至私有仓库 3. 从私有仓库拉取镜像

  • docker容器化部署技巧

    springcloud微服务项目通过maven打包并上传镜像到私有仓库 docker插件选择 1、dockerfi...

  • docker

    核心概念 docker主机 docker客户端 docker 仓库 保存打包好的软件镜像 docker 镜像 就是...

  • docker上传镜像至私人镜像仓库

    养成良好的记录习惯作者:黄黄邮箱:15797683468@163.com(可指出问题相互交流) 注:我这私人仓库地...

  • docker相关操作持续更新

    将docker镜像上传到阿里云镜像仓库 从阿里镜像仓库获取 登录阿里云 相关命令 正在运行的容器docker ps...

网友评论

      本文标题:【DevOps】第二步:Docker镜像打包上传至仓库

      本文链接:https://www.haomeiwen.com/subject/lraqjctx.html