如何制作Docker镜像

我们知道,要创建一个Docker容器,要先有Docker镜像,Docker镜像怎么创建的呢,一般有两种创建方式:
1. 根据基础镜像,生成新镜像
2. 使用Dockerfile生成镜像

在制作镜像之前,先看下怎么查找镜像

列出所有在主机上的镜像
docker images列出所有镜像
这里写图片描述
我主机上有两个镜像centos和ubuntu,我们在镜像列表中看到三个至关重要的东西。
- 镜像源,例如 ubuntu
- 镜像的标签(tags),例如 latest
- 镜像ID,每个镜像都有镜像ID

从DockerHub中查找镜像
DockerHub是远程镜像仓库,保存种各样的镜像,可以从DockerHub官网上搜索你想要的镜像
这里写图片描述

也可以在本机使用docker search 查找 DockerHub上的镜像
这里写图片描述

知道镜像的查找方式后,下来我们开始制作镜像

1. 根据基础镜像,生成新镜像

这种方式首先需要有一个基础镜像,可以通过docker pull命令,从DockerHub中先下载一个镜像,作为我们的基础镜像
这里写图片描述

下载时,如果没有指定tag,默认latest,使用docker images查看发现centos镜像已经下载下来了
这里写图片描述

下面开始基于镜像运行一个容器,修改容器内容,重新Commit生成新镜像
这里写图片描述

这里容器ID(9dc737402a4d)已经生成,并已进入到容器中,在运行的容器内创建一个text.txt的文件,然后exit退出容器
这里写图片描述

使用docker commit生成新镜像
这里写图片描述
这里我们指定了两个标识(flags) -m 和 -a 。-m 标识我们指定提交的信息,就像你提交一个版本控制。-a 标识允许对我们的更新来指定一个作者,最后用docker images查看镜像发现新镜像已经生成了

验证:
运行新镜像生成容器,到容器中查看是否存在刚才创建的text.txt文件
这里写图片描述
经验证后发现,在新生成的容器中,存在有刚创建的text.txt文件,说明新镜像已经生效

2. 使用Dockerfile生成镜像

使用 docker commit 命令能够能快速的创建一个新镜像,但是有点麻烦,并且在一个团队中也不能够轻易的共享它的开发过程。因此我们使用一个新的命令 docker build , 从零开始来创建一个新的镜像。我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

现在创建一个 Dockerfile,内容如下:

# This is a comment
FROM ubuntu:latest
MAINTAINER longwentao <longwentao@126.com>
RUN apt-get update && apt-get install -y ruby ruby-dev
RUN gem install sinatra

第一个指令 FROM 是告诉 Docker 使用的哪个镜像源,这里我们使用的是 Ubuntu:latest 基础镜像。

下一步,我们使用 MAINTAINER 指令来指定谁在维护这个新镜像。

最后,我们指定了两个 RUN 指令。 RUN 指令在镜像内执行一条命令,例如:安装一个包。这里我们更新了 APT 的缓存,并且安装 Ruby 和 RubyGems ,然后使用 gem 安装 Sinatra镜像

现在,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像
这里写图片描述
我们使用 docker build 命令并指定 -t 标识(flag)来标示属于 longwentao,镜像名称为 sinatra,标签是 v2。

如果 Dockerfile 在我们当前目录下,我们可以使用 . 来指定 Dockerfile

我们可以看到构建过程,Docker 做的第一件事是通过上下文进行构建,基本上是目录的内容构建。这样做是因为 Docker 进程构建镜像是实时构建的,并且是需要本地的上下文来做这些工作的。(这里上下文是指Context)

下一步,Dockerfile 中的每一条命令都一步一步的被执行。我们会看到每一步都会创建一个新的容器,在容器内部运行指令并且提交更改,就像docker commit 一样。当所有的指令执行完成之后,我们会得到97feabe5d2ed 镜像,然后所有中间容器会被清除。

服务器取证通常是指对服务器上发生的事件进行调查和分析的过程,以便于理解和重建事件发生的情况,例如安全事件或不当行为。而Docker镜像是一种轻量级、可执行的独立软件包,包含运行应用程序所需的所有内容:代码、运行时、库、环境变量和配置文件。 制作Docker镜像用于服务器取证的目的是为了确保取证工具和环境的一致性,避免因工具版本不同或环境配置不同而影响取证结果的准确性。以下是一个简化的流程,用于创建一个包含取证工具的Docker镜像: 1. 编写Dockerfile:Dockerfile是一个文本文件,包含了创建Docker镜像所需的全部指令。你需要指定基础镜像,安装必要的软件包,配置环境,并将取证工具的可执行文件和脚本复制到镜像中。 ```Dockerfile # 使用基础镜像,例如Ubuntu FROM ubuntu:latest # 设置环境变量 ENV DEBIAN_FRONTEND=noninteractive # 安装必要的软件 RUN apt-get update && apt-get install -y取证工具所需的软件包 # 添加取证工具到镜像中 COPY /path/to/forensic工具 /usr/local/bin/forensic工具 # 设置容器启动时执行的命令 ENTRYPOINT ["forensic工具"] ``` 2. 构建镜像:使用`docker build`命令根据Dockerfile构建镜像。 ```bash docker build -t forensic-image . ``` 3. 运行镜像:构建完成后,使用`docker run`命令运行镜像,进行取证工作。 ```bash docker run forensic-image ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值