从Dockerfile到image最终生成容器的过程

本文详细介绍了如何使用Dockerfile构建定制化的Ubuntu镜像,包括安装Python3及其相关依赖,以及如何生成、导出、导入和提交镜像与容器。通过具体示例,读者可以学习到Docker的基本操作流程。

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

  1. 制作Dockerfile
    上一篇中已有python3的Ubuntu镜像Dockerfile
    此处放一简化版示例
FROM daocloud.io/ubuntu:trusty
MAINTAINER water-law <dockerwaterlaw@daocloud.io>
RUN apt-get update && \
    apt-get install -y python3 \
                        python3-dev \
                        python3-pip \
    && apt-get clean \
    && apt-get autoclean \
    && rm -rf /var/lib/apt/lists/*
    
RUN mkdir -p /app
WORKDIR /app
EXPOSE 80
CMD ["bash"]
  1. 生成镜像
    创建空文件夹, 将 Dockerfile 文件放在此目录
    运行 docker build -t [tagname]

  2. 导出镜像
    docker images
    docker save -o [output_name] [image]
    其中 output_name 一般是 tar, tar.xz 格式

  3. 利用镜像生成容器
    docker run -it -v E:Projectswaterlawblog:/home/code [image] /bin/bash

  4. 退出容器
    exit

  5. 再次启动容器
    docker start [OPTIONS] CONTAINER [CONTAINER…]
    说明: 对容器的修改是永久保存到文件系统的。
    可发现 E:Projectswaterlawblog 是挂载到 docker 容器的 /home/code 目录的

  6. 修改容器
    比如 安装 virtualenv 且在 /home 目录使用 virtualenv -p python3 pysp
    创建虚拟环境, 进入 /home/code, 运行 pip3 install -r requirements.txt

  7. 提交容器修改
    先退出容器 exit
    基于旧的 container 提交新的 docker 镜像

    docker commit -m "commit message" -a "author info" [container_id] image_name:tag
    

    示例

    docker commit -m "earth" -a "zjp" 846edc550555 kuaiyun:earth
    

    提示: 以上命令会打了一个 REPOSITORY 为 kuaiyun、 TAG 为 earth 的镜像, 可通过
    docker images 查看。

  8. 导出容器
    docker ps -a
    docker export -o [outputfile] [container_id]

  9. 导入容器tar文件
    docker import [container_file] [command]
    我这里 command 是 /bin/bash, 所以 docker import [container_file] bash

  10. 导入镜像
    docker load < [tar file]
    docker load < xxx.tar
    注意 save 和 load 是配对的, import 和 export 是配对的。 import 还要加上 command。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值