基于已有的image,创建docker images

首先我们得知道怎么下载镜像:

docker search 镜像名称                                         //电脑联网情况下在docker HUB里面查找镜像
docker pull 仓库服务器/仓库/镜像名称:标签         //通过查询到的镜像信息来下载镜像

第一个方法:在运行的container中安装service然后导出为image

整体思路:运行一个容器,在运行容器的基础上添加需要的服务,然后导出为新的images。

[root@localhost ~]#docker run -it docker.io/centos     //根据image运行容器
[root@845e8472f250 /]#                                 //运行容器的ID号
[root@845e8472f250 /]# yum -y install *****            //安装一些服务
[root@845e8472f250 /]# exit

命令中 i 、t 的参数可以docker run –help查看

现在的容器很明显已经被我们改动了,然后通过以下命令新建images:

docker commit -m “Description” -a “users <users@163.com>” 845e8472f250 centos:v1

-m:来指定提交的说明信息
-a:指定更新的作者和邮箱
命令中的一串数字是刚才运行container’s ID
数字后面的是新建镜像的repository:tag

Complete

第二个方法:基于dockerfile文件来创建新的image

整体思路:新建一个dockerfile,文件名必须是dockerfile,写入命令。创建完使用docker build命令来创建新image。

dockerfile文件中基本分为4部分:
1.注释部分
2.基础镜像地址
3.维护者信息
4.命令部分

mkdir -p /docker/httpd
cd /docker/httpd

vim  dockerfile                         //这里文件名必须为dockerfile
#This is http service                   //注释部分,类似于文件说明
FROM docker.io/centos:latest           //以哪个image作为基础
MAINTAINER user <user@163.com>          //维护者的信息
RUN yum -y install apr apr-utils        //在创建镜像中运行以下命令
RUN yum -y install httpd

根据dockerfile创建新images:

docker build -t=centos:v2 /docker/httpd

-t:添加镜像name:tag信息
后面的/docker/httpd路径为dockerfile的绝对路径,也可在/docker/httpd的当前路径下使用 “.”来代替绝对路径

说明:dockerfile中的指令被一行一行的执行,每执行完一行命令都要创建一个新的容器。当所有命令都执行完,会返回一个镜像ID,中间步骤所产生的所有容器ID都会被清除。一个镜像不能超过127层

Complete

小tips:
基于已有image进行创建的时候,可能会因为下载国外网站的镜像很慢。如果你在本地有镜像,可以通过以下命令本地导入镜像,这里再贴出导出镜像的命令

docker load -input 镜像名称:标签                          //本地导入镜像
docker save -output  创建归档文件名 镜像名称:标签           //本地导出镜像
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在已有Docker 镜像基础上进行修改,并且需要重新打包成一个新的 Docker 镜像,可以使用以下步骤: 1. 启动 Docker 环境,确保 Docker 已经正确安装并启动; 2. 使用以下命令拉取已有Docker 镜像: ``` docker pull <image-name>:<tag> ``` 其中,`<image-name>` 是 Docker 镜像的名称,`<tag>` 是 Docker 镜像的版本号或者标签; 3. 使用以下命令启动一个新的容器,并进入到容器的命令行界面: ``` docker run -it <image-name>:<tag> /bin/bash ``` 其中,`-it` 选项表示启动交互式的终端,`/bin/bash` 表示进入到容器内部的 Bash 命令行界面; 4. 在容器内部进行修改,包括添加、删除、修改文件等操作; 5. 在容器内部执行如下命令退出容器并保存修改: ``` exit ``` 6. 使用以下命令查看容器的 ID: ``` docker ps -a ``` 7. 使用以下命令将容器的修改保存为一个新的 Docker 镜像: ``` docker commit <container-id> <new-image-name>:<new-tag> ``` 其中,`<container-id>` 是刚才查看到的容器的 ID,`<new-image-name>` 是你自己设置的新的 Docker 镜像名称,`<new-tag>` 是新的 Docker 镜像的版本号或者标签; 8. 使用以下命令查看新创建Docker 镜像列表: ``` docker images ``` 可以看到刚才创建的新的 Docker 镜像已经成功添加到了列表中。 通过以上步骤,你就可以在已有Docker 镜像基础上进行修改,并且重新打包成一个新的 Docker 镜像。注意,这种方法只适用于单个容器的情况,如果你需要修改的是多个容器或服务,建议使用 Docker Compose 等工具来进行管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值