我们可以从Docker Hub上下载官方仓库中的镜像,我自己就下载了ubuntu镜像,只有
188M
左右,很小巧了。但是看了下,里面的软件源还是官方的,而且没有安装vim
,所以就打算自己写一个Dockerfile
,用它来构建适合自己的ubuntu基础镜像。
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted
...................
构建上下文
build context
,一个自定义的文件夹,里面放置Dockerfile和一些需要的文件。比如我的:
- Dockerfile...这个是必须的
- sources.list...自己在官方社区找的ubuntu14.04的源
- vimrc...安装好vim后用到的配置文件。我事先配置好的,都是些基础的配置。
.
├── baseimage
│ ├── Dockerfile
│ ├── README.md
│ ├── sources.list
│ └── vimrc
Dokerfile
制作image有两种方法:
- 从现有容器通过
commit
命令创建- dockerfile中不方便的操作可以在容器中操作然后提交
- 没有批量启动容器的需要
- 自己学、习练习,不需要移植
- 利用Dockerfile构建
- 方便,灵活,可移植
- 适合部署大量的镜像和容器
Dockerfile基础
- '#'表示注释,一般Dockerfile第一行注释容器的基本信息和版本。
- Dockerfile以
命令:参数
为基本构建语句,命令全部大写,后面的参数视命令而定 -
FROM,必须是第一个命令项,表示我的镜像是以哪个镜像为基础构建的
FROM ubuntu
-
MAINTAINER,后面接构建这的姓名和邮箱,方便联系
MAINTAINER adolphlwq <kenan3015@gmail.com>
-
LABEL,用键值对的方式来指定image的元数据
LABEL Description="it is used as a basic image for DuoHuoStudio and my study.I will update and install vim." Vendor="Basic image"
-
ADD,在构建时向Docker daemon传递文件
ADD sources.list /etc/apt/
-
RUN,接操作和命令
sudo apt-get install -y vim
等ADD sources.list /etc/apt/
-
CMD,构建成功的镜像第一次启动时默认启动的命令
- CMD只有1条,一般默认在Dockerfile的最后
- 如果有多个CMD,只有最后一个起作用
- CMD会被
docker run ..
后面的命令覆盖
CMD ["/bin/bash"]
-
ENV,设置环境变量
ENV REFRESHED_AT 2015-05-18
构建命令
cd baseimage(构建上下文文件夹)
docker build -t="duohuosrudio/ubuntu:14.04_64_base_image" .
docker build
中-t
表示容器的名字duohuosrudio/ubuntu
中duohuostudio
表示仓库名(不允许大写),ubuntu
表示镜像名。ubuntu:14.04_64_base_image
后的14.04_64_base_image
是标签,如果没有指定,默认的是latest
构建过程:
实践中遇到的错误
-
apt-get upgrade
和apt-get install vim
都要加上** -y**选项,不然会报错 - ADD后面必须接两个参数,
ADD <src>... <dest>
表示要添加的文件,表示文件添加到哪里。 - ADD添加的文件必须以
构建上下文
为根目录来找,不能超出构建上下文的范围。
如果除错停止构建了也不要担心,Docker会把构建过程中的文件都缓存起来,再次构建时会从缓存的地方开始,节省时间。
除错停止后docker images
会出现一个只有IMAGE ID
的镜像,这个就是构建失败后留下的缓存,我们可以通过image id来运行这个镜像,然后执行除错的命令来检查为什么出错!(下图的最后1行)
adolph@geek:~/programs/DockerWorkspace/dockerfile/baseimage$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB
test2/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB
duohuostudio/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB
<none> <none> f6efc4dac25a 16 hours ago 269.1 MB
总结
docker build -t="duohuostudio/ubuntu:14.04_64_base_image" .
这条命令的最后一个参数是用来指定Dockerfile的路径,千万不要忘记。
dockerfile已经上传到 github 地址
镜像也已经上传到Docker Hub
上了,可以通过下列命令下载镜像
docker pull adolphlwq/ubuntu
相关推荐
........Ubuntu 14.04 64位Linux操作系统IOS镜像下载..........................................................................................................................................................
在Ubuntu 14.04上安装Docker是许多系统管理员和开发者的需求,尤其是在没有互联网连接或者网络环境受限的情况下。Docker是一个开源的应用容器引擎,它允许开发者将他们的应用及其依赖打包到一个可移植的容器中,然后...
复制文件内百度网盘分享地址ubuntu-14.04-desktop-amd64.iso
自动构建阿里云源的Ubuntu_14.04的docker基础镜像Dockerfile_docker-ubuntu
### Ubuntu 14.04 使用手册核心知识点 #### 标题解读:Ubuntu 14.04 使用手册(英文版) - **版本说明**:本手册为Ubuntu 14.04版本的操作系统使用指南。 - **语言版本**:手册以英文编写。 #### 描述解析:...
在 Ubuntu 14.04 中,默认情况下 root 帐号是禁用的,这是为了安全考虑。但是在某些情况下,我们需要使用 root 帐号来进行系统管理和维护。下面我们将介绍如何启用 root 帐号、如何在终端模式下切换到 root 身份,...
mysql-ubuntu14.04系统版
Ubuntu 14.04系统下能用的vscode客户端(新版本在启动时无响应,且无法打开终端),版本号:code_1.42.1-1581432938_amd64.deb 使用方法:解压后执行sudo dpkg -i code*
- **未来发展趋势**:随着云计算技术的不断发展,Ubuntu Server 14.04 LTS 为用户提供了坚实的基础,支持各种新兴技术和应用场景的探索和发展。 #### 进一步阅读建议 - 官方文档和指南:访问 [www.canonical.com]...
标题 "workstation-ansible:ansible 播放引导 ubuntu 14.04 LTS 工作站" 提供的信息表明,这是一个使用 Ansible 自动化工具来配置 Ubuntu 14.04 LTS(长期支持版)工作站的项目。Ansible 是一种强大的 IT 自动化框架...
### 关于Ubuntu 14.04 Desktop AMD64 ISO及百度云下载的相关知识点 #### 一、Ubuntu 14.04版本介绍 Ubuntu 14.04,全称为Ubuntu 14.04 LTS (Trusty Tahr),是Ubuntu操作系统的一个长期支持(LTS)版本,发布于2014...
在Ubuntu 14.04系统中,NFS(Network File System)是一种广泛使用的网络文件系统,它允许网络上的计算机共享文件和目录。NFS在Linux环境中尤其常见,用于服务器之间或者服务器与客户端之间的文件共享。离线安装NFS...
Ubuntu 14.04 安装配置 NFS 服务器 NFS(Network File System)是一种允许多个电脑通过网络共享文件的系统。它使得不同的计算机可以通过网络访问和共享对方的文件,实现了文件的共享和交换。在 Ubuntu 14.04 中,...
本文档详细介绍了在 Ubuntu 14.04 系统上升级 GCC 到 4.9.3 版本的步骤。GCC 是一个强大的编译器,支持 C++11 和 C++14 特性。在 Ubuntu 14.04 系统中,默认的 GCC 版本是 4.8.2,本文将指导用户如何升级到 4.9.3 ...
"VMware 上安装 Ubuntu 14.04 (64 位)" 本资源摘要信息主要讨论了在 VMware 中安装 Ubuntu 14.04 (64 位) 的步骤和注意事项。以下是对标题、描述、标签和部分内容的详细解释和知识点总结: 标题:VMware 上安装 ...
《Ubuntu参考手册14.04 LTS第二版》是一份专为Ubuntu 14.04 Long Term Support (LTS)版本用户准备的详细指南。Ubuntu 14.04 LTS,代号“Trusty Tahr”,是Ubuntu操作系统的一个稳定版本,支持周期长达5年,旨在为...
在Ubuntu 14.04上离线安装NFS涉及到几个关键步骤,包括理解NFS的基本概念、准备安装包、配置NFS服务器以及设置客户端。下面将详细介绍这个过程。 1. **NFS基本概念**:NFS由Sun Microsystems开发,是一种标准的...
在Ubuntu 14.04操作系统中,用户可以追求个性化的桌面体验,其中扁平化设计是一种流行的趋势。扁平主题文件就是为了让Ubuntu界面呈现简洁、现代化视觉效果的工具。这种设计风格抛弃了传统的渐变、阴影和浮雕效果,转...
5. 安装和配置Ubuntu系统:完成虚拟机配置后,通过虚拟机启动并加载Ubuntu 14.04的安装镜像,按照提示进行操作系统的安装。在这个过程中,可能会有一些特定的配置要求,如时区设置、语言选择、磁盘分区等。对于磁盘...
Ubuntu 14.04 修改软件源地址 Ubuntu 14.04 是一个非常流行的操作系统,但是有时候从 Ubuntu 官方服务器下载软件更新的速度非常慢,影响了用户体验。为了解决这个问题,我们可以尝试修改软件更新源,以加速下载...