使用dockerfile创建镜像遇到的问题
时间:2021-09-06
本文章向大家介绍使用dockerfile创建镜像遇到的问题,主要包括使用dockerfile创建镜像遇到的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、在dockerfile里面使用本地镜像
假设本地有golang:1.16镜像,你想使用,你可能回这么写
FROM golang:1.16
但是这样的话,docker会去docker.io拉取golang:1.16而不是使用本地的镜像
那应该怎么办呢,其实很简单。修改下tag,改成docker.io上的镜像tag,如docker.io/golang:1.16。即前面加上仓库地址,可以是docker.io也可以是个人私有仓库
这样的话docker就会使用本地的镜像了。所以在dockerfile里面使用镜像要记得加上仓库地址哦
2、调试busybox、distroless等镜像
busybox和distroless是linux的阉割版,不包含bash的。所以
docker run -ti xxx /bin/bash是不管用的。那怎么办呢
如果用distroless可以通过debug标签,下载debug版本的
然后使用/busybox/sh 就可以了
distroless镜像很小,但是里面有/busybox这个目录下有常用的一些命令,可以通过如/busybox/sh -c "mkdir xxx"来执行创建目录的操作。
busybox类似。不多说
3、使用distroless镜像来运行golang应用
单单使用distroless镜像是无法完成golang程序的编译的,我们需要借助下其他镜像。如官方提供的golang
FROM xxx/golang:1.16 as builder COPY XXX/ XXX/ 拷贝其他文件 RUN GOOS=linux等其他环境信息 go build -a -o xxx main.go FROM xxx/distroless:nonroot COPY --from=builder 从上面将编译好的二进制文件拷贝过来 ENTRYPOINT [./xxx]
这样做之后会发现编好的镜像很小。而且不用担心有什么linux的漏洞,因为distroless镜像阉割了很多功能,所以更安全。
其他之后遇到补充
原文地址:https://www.cnblogs.com/lgh344902118/p/15235803.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 谈谈Vue开发过程中用到的插件
- 快速入门使用tikz绘制深度学习网络图
- why哥被一道基础面试题给干懵了,一气之下写出万字长文。
- 结构与算法(03):单向链表和双向链表
- 有赞crash平台符号化实践
- 什么是时间分片(Time Slicing)?
- 逐行分析鸿蒙系统的 JavaScript 框架
- 48张小图带你领略Flex 布局之美
- 怎样设计一个 JavaScript 插件系统
- 一道 React 面试题:在浏览器、组件和元素中都渲染了些什么?
- 「新手入门福利」一张脑图带你掌握Git命令
- LeetCode | 58.最后一个单词的长度
- 模拟面试,解锁大厂 ——从Android的事件分发说起
- scRepertoire||单细胞免疫组库分析:R语言应用(一)
- Docker体验(二) - 自建Image