(作者:陈玓玏)

由现有镜像构建新镜像都是通过Dockerfile文档来实现的。

1、新建Dockerfile文档

在/home文件夹下新建一个文件夹,专门用来测试的,/docker/test文件夹,在文件夹中新建一个Dockerfile文档,文档中写入以下内容:

FROM    ubuntu:18.04RUN     apt-get update
RUN     apt-get install -y vimEXPOSE  80

Dockerfile文档中,每行的第一个关键字都必须大写。

第一行的意思是新建镜像的源镜像是Ubuntu 18.04版本。
第二行是新建镜像后执行的第一条命令,表示新建镜像后,首先更新后续下载各种应用的网址。
第三行是安装vim,方便后续在命令行中编辑脚本,-y是为了让其自动安装,否则安装过程会让你输入Y/n,如果不输入,就会执行失败。
最后第四行的意思是暴露80端口,像昨天的文章中的webapp端口映射,如果在这个镜像中执行到端口5000的映射,是会失败的,因为这个端口未对外开放。

2、在Dockerfile所在目录下执行命令

su root
cd docker/test
docker build -t cdl-test-0.0 .

最后一句话中,-t后面跟的是指定的镜像名,镜像名后面再跟一个点,表示是通过当前目录下的Dockerfile中的内容来创建新的镜像,所以注意,前一句cd命令和这一句最后的点都不能少!!

3、查看新镜像

docker images

结果:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
cdl-test-0.0        latest              da5d6c1147a7        4 minutes ago       185MB
runoob/centos       6.7                 542cf01e7692        27 minutes ago      191MB
ubuntu              16.04               52b10959e8aa        5 days ago          115MB
ubuntu              18.04               16508e5c265d        5 days ago          84.1MB
centos              6.7                 f2e2f7b8308b        3 weeks ago         191MB
training/webapp     latest              6fae60ef3446        3 years ago         349MB

4、查看镜像中安装的应用

#进入新建镜像的命令行
docker run -it cdl-test-0.0 /bin/bash
#打开vim
vim
#安装python3.7
apt-get install python3.7

Docker基于现有镜像构建新镜像相关推荐

  1. 基于Dockerfile构建新镜像

    Docker一共有两种构建镜像的方法(都是基于基础镜像构建新的镜像,用户当然也可以一步一步构建自己的镜像) 使用docker commit构建 使用docker build和Dockerfile命令构 ...

  2. 基于nerdctl + buildkitd构建容器镜像,运行tomcat后端服务和nginx前端服务

    目录 简介: 一.部署buildkitd 1.下载二进制包 2. 解压二进制包,并移到全局变量中 3.创建socket文件,service文件 4.启动服务 二.使用nerdctl命令测试镜像构建 1 ...

  3. Dockerfile构建新镜像--网易蜂巢--RHEL7.2

    为方便管理和使用自己的镜像,本文将自己的镜像放在网易蜂巢的个人私有仓库里面. 网易蜂巢地址为:https://c.163.com/ 假设自己的蜂巢账号为: user1, 用户名:user2 下面以构建 ...

  4. dockerfile以alpine为基础镜像构建nginx镜像

    dockerfile以alpine为基础镜像构建nginx镜像 文章目录 dockerfile以alpine为基础镜像构建nginx镜像 1:alpine 2:alpine软件包管理命令 apk ad ...

  5. 流水线中使用 docker in pod 方式构建容器镜像

    上个月参加了 Rancher 社区举办的 <Dockershim 即将被移除,你准备好了么?[1]>直播分享后,得知自 1.24 版本之后,Kubernetes 社区将正式放弃对 dock ...

  6. Docker最佳实践:构建最小镜像

    镜像大小其实是衡量我们容器打包技术的重要指标,我们应该在不影响应用正常运行的情况下,尽量让我们的容器镜像变得更小,这样,不管是从安全还是维护效率角度来讲,都是最佳实践. 本文我们从两种情况阐述我们的问 ...

  7. 【Docker】自定义dockerfile构建容器镜像并发布

    0 前言 此篇博客参考此b站视频完成,是一个有趣的小实践. 1 项目原址 准备工作:在github上下载一个zip压缩包 网址:恋爱倒计时静态网页 2 从0开始 2.1 创建项目文件夹并解压源项目等操 ...

  8. 追求极简:Docker镜像构建演化史

    // Dockerfile.target.alpine 自从2013年dotCloud公司(现已改名为Docker Inc)发布Docker容器技术以来,到目前为止已经有五年多的时间了.这期间Dock ...

  9. web重启tomcat_使用docker构建jdk镜像和web服务镜像

    一.构建jdk镜像 FROM centos WORKDIR /home/lily ADD jdk-8u91-linux-x64.tar.gz /home/lily RUN mv jdk1.8.0_91 ...

最新文章

  1. 阿里Druid数据库连接池配置解释
  2. 9. 混合模型和EM(3)
  3. 云炬Android开发报错处理教程 解决Android Studio kotlin等依赖下载慢,下载超时失败的问题
  4. 一分钟安装IDA pro7.0
  5. 源码角度,分析@Transactional实现原理
  6. c#项目 java项目_c#项目转Java项目!!!!!
  7. 传统socket的编程实现
  8. 网格分割后,边界点的获取方法
  9. 如何取消重要地点加密_西门子S7-300/400PLC编程之软件加密
  10. C# Winform添加全局快捷键(老板键)
  11. 计算机矩阵入门(eigen)0XC000041D
  12. 手机卡顿怎么办?学会这三个方法清理内存,手机多用三年都不卡
  13. export_savedmodel
  14. 奥城大学计算机专业,[美国金融硕士排名2018]2018年美国硕士双录取大学名单
  15. 读余华《活着》,你好,我叫福贵
  16. 前端失业 3个月,尝试接私单的感触
  17. 罗永浩Vs王自如:浮躁的世界该如何降温?!
  18. 网易MUMU模拟器怎么设置不卡?
  19. 《真·三国无双ADVANCE》攻略
  20. python画多个圆_我如何用pythonturtle画一个中间有一个圆的圆圈?

热门文章

  1. 我的android足迹
  2. Ubuntu调整默认输入法
  3. 我对写博客的一点感悟
  4. 线程的生命周期以及java提供的方法
  5. ubutun 滑动 触控板_Ubuntu下触控板手势调节软件xSwipe
  6. 关于微信表情及输入法emoji显示问题解决方案
  7. HTML、纯JS实现语音播放,实现定时刻播放
  8. codeup刷题2.1~2.4小节 ——《算法笔记》(胡凡)
  9. [转]软件开发项目计划编制过程
  10. 前端开发都有什么编程语言?