镜像生成(四)

生成docker镜像的两种方式

1. 基础镜像更新生长新镜像

	先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用 docker commit 命令提交为一个
新的镜像(以tomcat为例)

1.1 根据基础镜像,创建容器

docker run --name mytomcat -p 80:8080 -d tomcat

1.2 修改容器内容

# 进入容器
docker exec -it mytomcat /bin/bash

# 修改内容
cd webapps/ROOT
rm -f index.jsp
echo hello world > index.html

# 退出
exit       

1.3 提交为新镜像

docker commit -m="描述消息" -a="作者" 容器ID或容器名 镜像名:TAG
# docker commit -m="修改了首页" -a="lindsey" mytomcat lindsey/tomcat:v1.0
# TAG 不指定默认为latest

1.4 使用新镜像运行容器

docker run --name tom -p 8080:8080 -d lindsey/tomcat:v1.0

2. Dockerfile构建新镜像

2.1 构建指令

docker build -f /path/to/a/Dockerfile

2.2 Dockerfile文档结构

Dockerfile 一般分为四部分:
基础镜像信息
维护者信息
镜像操作指令和容器启动时执行指令
’#’ 为 Dockerfile 中的注释。

2.3 Dockerfile文件说明

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。
一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。

2.3 示例

使用Dockerfile构建SpringBoot应用镜像

Dockerfile 内容:

 # 指定基础镜像,本地没有会从dockerHub pull下来
 FROM java:8
 #作者
 MAINTAINER lindsey
 # 把可执行jar包复制到基础镜像的根目录下
 ADD lindsey.jar /lindsey.jar
 # 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效
 EXPOSE 80
 # 在镜像运行为容器后执行的命令
 ENTRYPOINT ["java","-jar","/lindsey.jar"]

使用 docker build 命令构建镜像:

docker build -f /data/docker/Dockerfile -t lindsey/mypro:v1.0
# -f指定Dockerfile文件的路径
# -t指定镜像名字和TAG 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值