基于Dockerfile创建镜像、安装软件及容器启动实操说明
自定义Linux Docker镜像构建记录
我来梳理一下你完成的Docker镜像构建流程,方便后续参考和优化:
1. 使用的Dockerfile内容
你编写的Dockerfile基于Ubuntu基础镜像,定义了容器启动时要执行的软件安装操作,具体代码如下:
FROM ubuntu CMD apt-get update; apt-get upgrade; apt-get install -y openjdk-8-jdk python2.7 python-pip unzip libaio1 nano tree curl wget alien
🔍 专家小建议:如果你的需求是在镜像构建阶段就完成软件安装,更推荐用
RUN指令替代CMD。因为CMD是容器启动时才会执行的命令,每次启动容器都要重新跑一遍安装流程;而RUN会在构建镜像时就把软件安装结果固化到镜像里,启动容器时直接就能用,效率更高。另外用&&替代分号的好处是,前面的命令执行失败时,后面的命令会自动终止,避免构建出有问题的镜像。调整后的Dockerfile可以改成这样:FROM ubuntu RUN apt-get update && apt-get upgrade -y && apt-get install -y openjdk-8-jdk python2.7 python-pip unzip libaio1 nano tree curl wget alien
2. 执行镜像构建命令
在Mac主机上,你进入Dockerfile所在的目录,运行了以下命令来构建镜像:
docker build . -t my-linux
构建过程耗时1-2分钟是正常的,这个过程包含了拉取Ubuntu基础镜像、更新软件源、下载并安装指定软件包等步骤。
3. 验证构建结果
构建结束后,你通过docker images命令查看了已创建的镜像,输出结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE my-linux latest f9061de79d89 34 seconds ago 112MB ubuntu latest f975...
从输出可以看到,my-linux镜像已经成功生成,大小为112MB,相比基础Ubuntu镜像增大的部分就是你安装的那些软件包占用的空间。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

