Docker 创建镜像
文章首发自个人网站:https://www.exception.site/docker/docker-create-image
本文中,您将学习 Docker 如何创建镜像?Docker 创建镜像主要有三种:
- 基于已有的镜像创建;
- 基于 Dockerfile 来创建;
- 基于本地模板来导入;
我们将主要介绍常用的 1,2 两种。
一、基于已有的镜像创建
通过如下命令来创建:
docker container commit
支持的子命令如下:
-a, --author
="": 作者信息;-c, --change
=[]: 可以在提交的时候执行 Dockerfile 指令,如 CMD、ENTRYPOINT、ENV、EXPOSE、LABEL、ONBUILD、USER、VOLUME、WORIR 等;-m, --message
="": 提交信息;-p, --pause
=true: 提交时,暂停容器运行。
接下来,基于本地已有的 Ubuntu 镜像,创建一个新的镜像:
首先,让我将它运行起来,并在其中创建一个 test.txt 文件:
命令如下:
docker run -it docker.io/ubuntu:latest /bin/bash
root@a0a0c8cfec3a:/# touch test.txt
root@a0a0c8cfec3a:/# exit
创建完 test.txt 文件后,需要记住标注的容器 ID: a0a0c8cfec3a
, 用它来提交一个新的镜像(PS: 你也可以通过名称来提交镜像,这里只演示通过 ID 的方式)。
执行命令:
docker container commit -m "Added test.txt file" -a "Allen" a0a0c8cfec3a test:0.1
提交成功后,会返回新创建的镜像 ID 信息,如下图所示:
再次查看本地镜像信息,可以看到新创建的 test:0.1
镜像了:
二、基于 Dockerfile 来创建镜像
通过 Dockerfile 的方式来创建镜像,是最常见的一种方式了,也是比较推荐的方式。Dockerfile 是一个文本指令文件,它描述了是如何基于一个父镜像,来创建一个新镜像的过程。
下面让我们来编写一个简单的 Dockerfile 文件,它描述了基于 Ubuntu 父镜像,安装 Python3 环境的镜像:
FROM docker.io/ubuntu:latest
LABEL version="1.0" maintainer="Allen <weiwosuo@github>"
RUN apt-get update && \
apt-get install -y python3 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
创建完成后,通过这个 Dockerfile 文件,来构建新的镜像,执行命令:
docker image build -t python:3 .
注意:命令的最后有个点,如果不加的话,会构建不成功 !
编译成功后,再次查看本地镜像信息,就可以看到新构建的 python:3 镜像了。
三、总结
本文中,我们学习了 Docker 中如何基于本地已有的镜像,来创建镜像,以及如何通过 Dockerfile 来创建新的镜像。祝您学习愉快!
作者:犬小哈
出处:犬小哈教程: www.quanxiaoha.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
本文如对您有帮助,还请多帮 【推荐】 下此文。
如果喜欢我的文章,不妨关注下我的公众号哟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!