5.Docker之自定义镜像

本文介绍了通过Docker进行镜像构建的两种方法:一是使用docker commit命令直接从现有容器创建;二是推荐的使用Dockerfile方式,尤其强调了后者在镜像更新时的效率优势,仅更新最新部分,实现类似差分包的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种方式

1.使用命令定制

docker commit 容器名 镜像名

2.使用dockerfile—推荐

docker bulid -t imagename

使用此方式时(镜像更新的时候,只更新最新的,相当于差分包)

### 创建和打包 Docker 镜像 #### 使用 Dockerfile 构建镜像 为了构建自定义Docker 镜像,通常会编写一个 `Dockerfile` 来描述应用环境。下面是一个简单的 Python 应用程序对应的 `Dockerfile` 示例: ```dockerfile # 使用官方 Python 运行时作为父镜像 FROM python:3.9-slim-buster # 设置工作目录 WORKDIR /app # 将当前目录的内容复制到容器中的 /app 路径下 COPY . . # 安装任何所需的包 RUN pip install --no-cache-dir -r requirements.txt # 让端口 80 可供外部访问 EXPOSE 80 # 启动应用程序 CMD ["python", "my_app.py"] ``` 完成上述操作之后,在包含 `Dockerfile` 的同一目录中运行以下命令来创建新镜像[^1]。 ```bash $ docker build -t my-python-app . ``` 此命令将会读取并执行位于当前路径下的 `Dockerfile` 中指定的操作,并最终生成名为 `my-python-app` 的镜像。 #### 提交正在运行的容器为新的镜像 另一种方式是从现有的容器实例保存状态至一个新的镜像。这可以通过 `docker commit` 实现: ```bash $ docker commit nginx mynginx ``` 这条指令将基于 Nginx 容器的状态制作一份快照,并将其存储成名为 `mynginx` 的新镜像[^3]。 #### 导出镜像为 tar 文件 一旦有了想要导出的目标镜像,则可以利用 `docker save` 命令将其转换为 `.tar` 归档文件形式以便于传输或长期保存。 ```bash $ docker save -o nginx.tar mynginx:latest ``` 该命令会把标记为 `mynginx:latest` 的镜像序列化后写入到 `nginx.tar` 文件里。 #### 加载 tar 文件恢复镜像 当需要重新部署之前备份过的镜像时,可借助 `docker load` 把 `.tar` 文件还原回 Docker 环境之中。 ```bash $ docker load -i nginx.tar ``` 通过这种方式可以从本地磁盘上的压缩包快速重建所需的工作负载环境[^2]。 #### 推送镜像到远程仓库 对于希望分享给他人使用的镜像来说,还可以考虑上传至公共或者私有的注册中心服务。推送前需确保已登录相应的账号。 ```bash $ docker tag my-python-app learn/ping $ docker push learn/ping ``` 这里先是重命名了本地镜像标签使其符合目标库的要求,接着再发起实际的数据同步请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值