最简单的Docker镜像教程:从头基于空镜像scratch创建一个新的Docker镜像-阿里云开发者社区

开发者社区> 开发者小助手-bz5> 正文

最简单的Docker镜像教程:从头基于空镜像scratch创建一个新的Docker镜像

简介: 最简单的Docker镜像教程:从头基于空镜像scratch创建一个新的Docker镜像
+关注继续查看

我们在使用Dockerfile构建docker镜像时,一种方式是使用官方预先配置好的容器镜像。优点是我们不用从头开始构建,节省了很多工作量,但付出的代价是需要下载很大的镜像包。

比如我机器上docker images返回的这些基于nginx的镜像,每个都超过了100MB,而一个简单的Ubuntu的容器超过了200MB,如果安装了相关的软件,尺寸会更大。

image.png

如果我们的需求是在构建一个符合我们实际业务需求的Docker镜像的前提下,确保镜像尺寸尽可能的小,应该怎么做呢?

思路是使用空镜像scratch。

image.png

新建一个文件夹,用wget下载rootfs.tar.xz压缩包。

wget -O rootfs.tar.xz https://github.com/debuerreotype/docker-debian-artifacts/raw/b024a792c752a5c6ccc422152ab0fd7197ae8860/jessie/rootfs.tar.xz

1

image.png

这个将近30MB的压缩包是个什么东东?

解压之后看内容就知道了,包含了操作系统大部分常用命令。

image.pngimage.png


新建一个dockerfile文件,将下列内容粘贴进去:

image.pngimage.png执行命令进行镜像的构建:image.png

产生的日志:

image.png

最后看到镜像成功构建的消息。

image.png

基于这个名为nginx-from-scratch的镜像启动一个新的nginx容器:

image.png

localhost:1083, 看到首页,说明这个新构建的镜像工作正常。

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Docker 为 ASP.NET Core Web 应用程序生成 Docker 映像,创建并运行多个容器
1.为 ASP.NET Core 应用程序生成 Docker 映像 下载这个事例项目:https://github.com/dotnet/dotnet-docker/tree/master/samples/aspnetapp 下载完成后给这项目生成一个镜像名为aspnetapp镜像 docker build -t aspnetapp .
885 0
最新Swift学习教程-从简单到复杂 韩俊强的博客
GitHub每日更新地址: https://github.com/iOS-Swift-Developers/Swift Swift基础知识大全,Swift学习从简单到复杂,不断地完善与更新, 欢迎Star️,欢迎Fork,️iOS开发者交流群:446310206 知识架构: 常两变量 基.
998 0
Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行
1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生成项目,将项目拷贝到 E:\web\aspnetcore.
1658 0
Docker创建运行多个mysql容器
1.使用mysql/mysql-server:latest镜像快速启动一个Mysql实例 docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:lates...
3796 0
怎样用Docker创建我们自己的镜像
怎样用Docker创建我们自己的镜像 官方文档 Docker创建镜像 总共有两种方法:  1.用别人的镜像创建。  1.1、先下载一个容器  命令: docker pull training/sinatra  1.2、然后用容器启动这个镜像  命令:docker run -t -i training/sinatra /bin/bash  1.3、接下来就是给使用中的容器,添加自己需要的工具等,来组装自己的运行环境。
1787 0
2497
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载