简单明了,三种方法:
1、基于修改后的容器创建,使用命令:docker commit 2、基于本地模板导入 3、基于Dockerfile文件创建
1、基于修改后的容器创建 # docker run -it centos:7 /bin/bash #mkdir /testdir (做任何修改,也可以安装软件) #exit #docker commit container-name image-name #container-name可以通过docker ps -a来查看,image-name自己eg:centos:7v1 #docker images #检查新建镜像是否已经创建成功
2、基于本地模板导入 导出 #docker save -o centos.tar centos:7v1 #ls 导入:#docker load --input centos.tar centos:7v1或者 #docker load -i centos.tar #docker rmi ID (这里删除镜像前要先删除容器docker ps -a 查找ID docker rm ID) #docker images
3、修改dockerfile创建 1)用dockerfile创建新的镜像 #vim FROM centos:7 RUN yum -y install tree #这里注意大写 #docker build -t centos:7v2 /root/dockerfile 或者docker build -t centos:7v2 . -t指定镜像名字 .:表示build context 为当前目录, 注:在原dockerfile中新增加操作后要重新build一下 2)dockerfile文件常用命令: FROM:指定镜像 MAINTAINER:设置镜像作者 COPY 将宿主机的文件复制到镜像中,COPY src dest 或者 COPY ["src", "dest"],其中src要在build context目录中 ADD:和COPY差不多,不同的是,src是归档文件(tar、zip、tgz、xz等)文件会被自动解压到dest ENV:设置环境变量,eg:ENV my_version 1.3 EXPOSE:指定容器中进程会监听某个端口 VOLUME:将文件或目录声明成volume WORKDIR:为后边的RUN、CMD、COPY指令设置镜像中的当前工作目录 RUN:在容器中运行指定命令,一般是指安装应用和软件包 CMD:容器启动时运行指定命令