使用docker构建镜像的方式主要有两种,一种是使用commit 从原有的容器中构建新的镜像,一种是使用Dockerfile 构建新的镜像,下面让我们来看看这两种方式的具体实现

使用commit构建镜像

下载基础镜像

使用docker pull 下载自己需要的镜像 :

 

运行基础镜像

使用docker run -d 镜像名称 -p 宿主端口:docker端口 

例如:docker run -t -i -p 8088:8088  12480b1d188a  /bin/bash

进入容器

使用docker exec -it 容器id bash 进入镜像
 

修改容器内容

我们可以使用vi 命令,在webapp目录下面添加个index.html 页面,添加之后,执行exit 命令,退出docker容器
 

commit容器内容

docker commit  【容器id】   【自定义镜像名称】

为容器打标签

docker tag  【镜像名称】  【需要命名的名称】

push到仓库

docker  push 【镜像名称】

 

 

push到仓库之后,你可以可以到其他服务器上去下载,使用这个已修改的镜像了,里面包含你自己修改的内容(index.html页面)。

 

 

使用Dockerfile构建镜像

 
使用Dockerfile构建文件比较简单,也用的比较广泛,这里推荐大家还是使用Dockerfile构建镜像。

编辑Dockerfile文件

Dockerfile的编写比较简单,如果不熟Dockerfile的操作命令的,可以参考我这篇博文: Dockerfile 指令详解
下面给一个样例给大家参考:
FROM reg-mirror.shie.site/shie-base/centos6-tomcat:7

MAINTAINER XXX@qq.com

ENV PROJ_NAME channel

RUN mkdir -p /app/shie/${PROJ_NAME}/conf

COPY server.xml ${CATALINA_HOME}/conf

COPY target/${PROJ_NAME}*.war /app/shie/${PROJ_NAME}/
COPY src/main/resources/PayZS/* /usr/local/tomcat/cert/

RUN unzip -d ${CATALINA_HOME}/webapps/${PROJ_NAME} /app/shie/${PROJ_NAME}/${PROJ_NAME}*.war

RUN rm -rf ${CATALINA_HOME}/webapps/${PROJ_NAME}/WEB-INF/lib/comm-conf-0.0.1-SNAPSHOT.jar

RUN mkdir -p ${CATALINA_HOME}/webapps/${PROJ_NAME}/WEB-INF/classes/comm/config

RUN sed -i '2i cp ${CATALINA_HOME}/webapps/${PROJ_NAME}/WEB-INF/classes/config/${ENV_NAME}/*  ${CATALINA_HOME}/webapps/${PROJ_NAME}/WEB-INF/classes/comm/config/' /usr/local/tomcat/bin/catalina.sh
 
 

使用Dockerfile文件构建镜像

使用一下命令,通过Dockerfile构建镜像
 
docker build -t 【镜像名称】 -f 【Dockerfile路径】【构建时候所在的相对路径】
 
 
 
ok,这两种构建镜像的方式已经说完了,如有优化,欢迎指出大家互相交流,谢谢~
 
 
 
 
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐