Docker基于现有镜像构建新镜像
(作者:陈玓玏)
由现有镜像构建新镜像都是通过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基于现有镜像构建新镜像相关推荐
- 基于Dockerfile构建新镜像
Docker一共有两种构建镜像的方法(都是基于基础镜像构建新的镜像,用户当然也可以一步一步构建自己的镜像) 使用docker commit构建 使用docker build和Dockerfile命令构 ...
- 基于nerdctl + buildkitd构建容器镜像,运行tomcat后端服务和nginx前端服务
目录 简介: 一.部署buildkitd 1.下载二进制包 2. 解压二进制包,并移到全局变量中 3.创建socket文件,service文件 4.启动服务 二.使用nerdctl命令测试镜像构建 1 ...
- Dockerfile构建新镜像--网易蜂巢--RHEL7.2
为方便管理和使用自己的镜像,本文将自己的镜像放在网易蜂巢的个人私有仓库里面. 网易蜂巢地址为:https://c.163.com/ 假设自己的蜂巢账号为: user1, 用户名:user2 下面以构建 ...
- dockerfile以alpine为基础镜像构建nginx镜像
dockerfile以alpine为基础镜像构建nginx镜像 文章目录 dockerfile以alpine为基础镜像构建nginx镜像 1:alpine 2:alpine软件包管理命令 apk ad ...
- 流水线中使用 docker in pod 方式构建容器镜像
上个月参加了 Rancher 社区举办的 <Dockershim 即将被移除,你准备好了么?[1]>直播分享后,得知自 1.24 版本之后,Kubernetes 社区将正式放弃对 dock ...
- Docker最佳实践:构建最小镜像
镜像大小其实是衡量我们容器打包技术的重要指标,我们应该在不影响应用正常运行的情况下,尽量让我们的容器镜像变得更小,这样,不管是从安全还是维护效率角度来讲,都是最佳实践. 本文我们从两种情况阐述我们的问 ...
- 【Docker】自定义dockerfile构建容器镜像并发布
0 前言 此篇博客参考此b站视频完成,是一个有趣的小实践. 1 项目原址 准备工作:在github上下载一个zip压缩包 网址:恋爱倒计时静态网页 2 从0开始 2.1 创建项目文件夹并解压源项目等操 ...
- 追求极简:Docker镜像构建演化史
// Dockerfile.target.alpine 自从2013年dotCloud公司(现已改名为Docker Inc)发布Docker容器技术以来,到目前为止已经有五年多的时间了.这期间Dock ...
- 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 ...
最新文章
- 阿里Druid数据库连接池配置解释
- 9. 混合模型和EM(3)
- 云炬Android开发报错处理教程 解决Android Studio kotlin等依赖下载慢,下载超时失败的问题
- 一分钟安装IDA pro7.0
- 源码角度,分析@Transactional实现原理
- c#项目 java项目_c#项目转Java项目!!!!!
- 传统socket的编程实现
- 网格分割后,边界点的获取方法
- 如何取消重要地点加密_西门子S7-300/400PLC编程之软件加密
- C# Winform添加全局快捷键(老板键)
- 计算机矩阵入门(eigen)0XC000041D
- 手机卡顿怎么办?学会这三个方法清理内存,手机多用三年都不卡
- export_savedmodel
- 奥城大学计算机专业,[美国金融硕士排名2018]2018年美国硕士双录取大学名单
- 读余华《活着》,你好,我叫福贵
- 前端失业 3个月,尝试接私单的感触
- 罗永浩Vs王自如:浮躁的世界该如何降温?!
- 网易MUMU模拟器怎么设置不卡?
- 《真·三国无双ADVANCE》攻略
- python画多个圆_我如何用pythonturtle画一个中间有一个圆的圆圈?