Docker创建镜像之docker commit命令与docker build命令

docker commit命令

原理:

 先创建一个容器,在容器里做修改,最后将修改后容器提交为一个新镜像

举例:

制作运行Bootstrap模板的Tomcat镜像

step 1:下载Tomcat镜像: 

docker pull tomcat:8.0 

Docker创建镜像之docker commit命令与docker build命令_第1张图片

step 2:查看Tomcat镜像: 

docker images tomcat 

step 3:创建并开启容器Tomcat容器: 

docker run --name tomcat -d -p 82:8080 ef6a7c98d192 

step 4:测试浏览器访问Tomcat:

Docker创建镜像之docker commit命令与docker build命令_第2张图片

step 5:进入容器,查看Tomcat目录: 

docker exec -it tomcat /bin/bash 
ls -l

Docker创建镜像之docker commit命令与docker build命令_第3张图片

 Tips:容器内部不支持ll命令,可以使用ls -l代替

step 6:从宿主机拷Bootstrap模板到容器: 

docker cp /home/test tomcat:/usr/local/tomcat/webapps

step 7:查看Tomcat容器webapps目录:

cd ./webapps
ls -l

 

step 8:重启容器: 

docker ps -l 
docker restart 16e81e0a2f4e 

step 9:测试浏览器访问Bootstrap模板页面:

Docker创建镜像之docker commit命令与docker build命令_第4张图片

step 10:创建镜像:

 docker commit -a "hanxiaozhang" -m "测试打镜像" 16e81e0a2f4e my_tomcat:1.0 

Tips:语法 

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 

    OPTIONS:参数 -a :提交的镜像作者 -m :提交时的说明文字
    CONTAINER:容器(这里指CONTAINER ID) 
    REPOSITORY:镜像名称 
    TAG:版本 

step 9:上传镜像:

i.登录

docker login daocloud.io -u用户名 -p密码

Tips:这里使用Daocloud提供的镜像仓库; Daocloud只有企业版才有本地镜像仓库,每月收费200元。

ii.标记镜像 标记镜像可选,但Daocloud有格式要求

docker tag my_tomcat:1.0 daocloud.io/hanxiaozhang/my_tomcat:1.0

Docker创建镜像之docker commit命令与docker build命令_第5张图片

Tips:语法

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

 iii.上传镜像

docker push daocloud.io/hanxiaozhang/my_tomcat:1.0

Docker创建镜像之docker commit命令与docker build命令_第6张图片

Docker创建镜像之docker commit命令与docker build命令_第7张图片

Tips:语法 

docker push [OPTIONS] NAME[:TAG]

 

docker build命令

概述:

docker build 命令需要使用 Dockerfile文件来创建镜像,推荐大家使用。

DockerFile文件:

一系列指令和参数组成
语法:

每条指令必须大写,后面要跟随一个参数;
指令按照顺序从上向下执行,原理与docker commit命令制作镜像一样。

举例:

创建sprigboot项目镜像:

step 1:创建dockerFile文件夹:

mkdir /data/dockerFile

step 2:创建Dockerfile文件:

touch /data/dockerFile/Dockerfile

 Tips: 注意大小写

step 3:编辑Dockerfile文件:

vim ./Dockerfile

Docker创建镜像之docker commit命令与docker build命令_第8张图片
Tips:内容
  

#指定构建镜像的基础源镜像
FROM daocloud.io/library/java:8
#指定维护者信息
MAINTAINER  hanxiaozhang
#创建数据挂载点
VOLUME /tmp
#将本地文件添加到容器中
ADD bootdo_demo-2.0.0.jar /app.jar
#创建镜像时执行的命令
RUN bash -c 'touch /app.jar'
#声明容器应该打开的端口,但实际并没有打开。-p 80:8082
EXPOSE 8082
#容器启动后执行的命令,并且不能被docker run --entrypoint覆盖
ENTRYPOINT ["java","-jar","/app.jar"]

step 4:上传springboot项目架包:

rz

Docker创建镜像之docker commit命令与docker build命令_第9张图片


step 5:创建镜像:

docker build -t daocloud.io/hanxiaozhang/bootdo:1.0 .

Docker创建镜像之docker commit命令与docker build命令_第10张图片

Tips:语法

docker build [OPTIONS] PATH | URL | -

step 6:上传镜像:

 同上

Docker创建镜像之docker commit命令与docker build命令_第11张图片
step 7:部署镜像:

Rancher部署

Docker创建镜像之docker commit命令与docker build命令_第12张图片

Tips:Rancher使用方法,会有文章细讲。

step 8:测试springboot镜像:

Docker创建镜像之docker commit命令与docker build命令_第13张图片


 

 

你可能感兴趣的:(Docker)