Docker镜像的创建(基于已有镜像、本地模板、Dockerfile)

本文详细介绍了Docker镜像的创建过程,包括三种方法:基于已有镜像,通过导入本地模板以及使用Dockerfile。基于已有镜像,可以将容器内的程序及环境打包成新镜像;基于本地模板,可通过操作系统模块文件生成新镜像;基于Dockerfile,通过一组指令定义基础镜像、维护者信息、镜像操作和启动指令,实现分层构建。

1.Docker镜像

应用发布的标准格式

支撑一个Docker容器的运行

2.Docker镜像的创建方法

基于已有镜像创建

基于本地模板创建

基于Dockerfile创建

3.基于已有镜像创建

将容器里面运行的程序及运行环境打包成新的镜像

docker commit [选项] 容器ID/名称 仓库名称:[标签]

选项:
-m 说明信息
-a 作者信息
-p 生成过程中停止容器的运行

//创建容器
docker create -it centos:7 /bin/bash
docker commit -m "new" -a "docker" bc32f640b5d9 daoke:test	/这个是容器ID,不是镜像ID
docker images | grep daoke

4.基于本地模板创建

通过导入操作系统模块文件生成新的镜像

使用wget命令导入为本地镜像

wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz

导入成功后可查看本地镜像信息

docker images | grep new
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
cat debian-7.0-x86-minimal.tar.gz | docker import - docker:new
docker images | grep new

### 创建 Docker 镜像的方法 在本地创建 Docker 镜像主要有三种方法:基于容器提交、基于模板文件导入和基于 Dockerfile 构建。以下是详细的步骤说明。 #### 基于容器提交创建镜像 这种方法是通过修改一个已有的容器,并将其提交为新的镜像。 1. **运行一个容器** 使用 `docker run` 命令启动一个容器,例如基于 Ubuntu 的镜像: ```bash docker run -it ubuntu bash ``` 2. **在容器中进行修改** 在容器中安装软件或进行配置,例如安装 `nginx`: ```bash apt update && apt install nginx ``` 3. **提交容器为新的镜像** 使用 `docker commit` 命令将修改后的容器提交为新的镜像。例如: ```bash docker commit -m "nginx installed" -a "author_name" <container_id> my-nginx ``` 其中 `-m` 是说明信息,`-a` 是作者信息,`<container_id>` 是容器的 ID,最后是镜像名称 [^3]。 #### 基于模板文件导入创建镜像 这种方法是将容器导出为一个模板文件,然后将该文件导入为镜像。 1. **导出容器为模板文件** 使用 `docker export` 命令将容器导出为一个 `.tar` 文件: ```bash docker export <container_id> > my-container.tar ``` 2. **导入模板文件为镜像** 使用 `docker import` 命令将 `.tar` 文件导入为新的镜像: ```bash cat my-container.tar | docker import - my-custom-image ``` #### 基于 Dockerfile 构建镜像 这是最常用的方法,通过编写 Dockerfile 来定义镜像的构建过程。 1. **创建 Dockerfile** 在项目目录中创建一个名为 `Dockerfile` 的文件,并添加以下内容: ```Dockerfile # 指定基础镜像 FROM ubuntu:latest # 维护者信息 LABEL maintainer="example@example.com" # 安装软件包 RUN apt update && apt install -y nginx # 暴露端口 EXPOSE 80 # 启动命令 CMD ["nginx", "-g", "daemon off;"] ``` 2. **构建镜像** 在 Dockerfile 所在目录运行以下命令来构建镜像: ```bash docker build -t my-nginx . ``` 其中 `-t` 指定镜像名称,`.` 表示当前目录为构建上下文 [^1]。 #### 验证镜像 构建完成后,可以使用以下命令查看本地镜像列表: ```bash docker images ``` #### 运行容器测试镜像 使用新创建镜像运行一个容器: ```bash docker run -d -p 8080:80 my-nginx ``` 其中 `-d` 表示后台运行,`-p` 将容器的 80 端口映射到主机的 8080 端口。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值