使用本工具填入docker镜像的名称,一键生成docker tag、docker push和docker pull命令,适用于单个或者批量的docker指令处理
预览图如下:
docker-command-format.html源代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>docker镜像处理命令格式化工具</title> <style> .source-div, .format-div { width: 50%; float: left; } .source-div textarea, .format-div textarea { width: 80%; height: 150px; padding: 5px; } #target-registry-input { width: 80%; height: 24px; } input[type=radio], .radio-label { cursor: pointer; } button { padding: 5px 15px; cursor: pointer; } </style> </head> <body> <h1>docker镜像处理命令格式化工具</h1> <div class="source-div"> <h4>镜像名称:一行一个docker镜像名称,多个镜像请换行填写</h4> <textarea id="docker-image-text"></textarea> <br/> <h4> <span>镜像来源:</span> <input type="radio" name="image-source" id="image-source-docker-hub" value="docker-hub"><label class="radio-label" for="image-source-docker-hub">docker hub</label> <input type="radio" name="image-source" id="image-source-other" value="other" checked><label class="radio-label" for="image-source-other">其他</label> </h4> <h4>目标registry:例如 develop-harbor.geostar.com.cn或192.168.100.150:5000,不包含“http://“及”https://“</h4> <input id="target-registry-input" value="develop-harbor.geostar.com.cn"/> <br/> <br/> <h4> <button onclick="cleanup();">清理</button> <button onclick="format();">格式化</button> </h4> <br/> <h4>常用命令技巧:</h4> <p> <span>获取镜像名称及标签:docker images --format "{{.Repository}}:{{.Tag}}"</span> </p> </div> <div class="format-div"> <h4>docker tag:</h4> <textarea id="docker-image-tag-command"></textarea> <h4>docker push:</h4> <textarea id="docker-image-push-command"></textarea> <h4>docker pull:</h4> <textarea id="docker-image-pull-command"></textarea> </div> </body> <script> /** * 格式化 */ function format() { let dockerTagTextarea = getById("docker-image-tag-command"); let dockerPushTextarea = getById("docker-image-push-command"); let dockerPullTextarea = getById("docker-image-pull-command"); dockerTagTextarea.value = ""; dockerPushTextarea.value = ""; dockerPullTextarea.value = ""; let input = getById("target-registry-input") let registryUrl = input.value.trim().toLowerCase(); if (registryUrl.startsWith("http://")) { registryUrl = registryUrl.substring("http://".length); } else if (registryUrl.startsWith("https://")) { registryUrl = registryUrl.substring("https://".length); } input.value = registryUrl; registryUrl = formatUrl(registryUrl); let imageSource; /** * 镜像名称是否包含registry地址 */ let radioList = getByName("image-source"); for (let i = 0; i < radioList.length; i++) { let radioDom = radioList[i]; if (radioDom.checked) { imageSource = radioDom.value; } } let existImage = false; let textarea = getById("docker-image-text"); let array = textarea.value.trim().split(" "); for (let i = 0; i < array.length; i++) { let image = array[i].trim(); if (image != "") { let simpleImage = getSimpleImageName(image, imageSource); let newImage = registryUrl + "/" + simpleImage; let tagCommand = "docker tag " + image + " " + newImage; dockerTagTextarea.value = dockerTagTextarea.value + " " + tagCommand; let pushCommand = "docker push " + newImage; dockerPushTextarea.value = dockerPushTextarea.value + " " + pushCommand; let pullCommand = "docker pull " + newImage; dockerPullTextarea.value = dockerPullTextarea.value + " " + pullCommand; existImage = true; } } if (existImage) { dockerTagTextarea.value = dockerTagTextarea.value.trim() + " "; dockerPushTextarea.value = dockerPushTextarea.value.trim() + " "; dockerPullTextarea.value = dockerPullTextarea.value.trim() + " "; } else { alert("请填写镜像名称"); textarea.focus(); } } /** * 获取简单的镜像名称 */ function getSimpleImageName(image, imageSource) { if (imageSource == "other") { image = image.substring(image.indexOf("/") + 1); } return image; } /** * 递归处理目标registry */ function formatUrl(url) { if (url.endsWith("/")) { url = url.substring(0, url.length - 1); return formatUrl(url); } else { return url; } } /** * 清理内容 */ function cleanup() { let dockerImageTextarea = getById("docker-image-text"); let dockerTagTextarea = getById("docker-image-tag-command"); let dockerPushTextarea = getById("docker-image-push-command"); let dockerPullTextarea = getById("docker-image-pull-command"); dockerImageTextarea.value = ""; dockerTagTextarea.value = ""; dockerPushTextarea.value = ""; dockerPullTextarea.value = ""; } /** * 根据name获取dom */ function getByName(name) { return document.getElementsByName(name); } /** * 根据id获取dom * @param id * @returns {HTMLElement} */ function getById(id) { return document.getElementById(id); } </script> </html>
纯原生html,不依赖任何第三方库及js文件,保存为html文件,使用浏览器直接打开使用