Docker命令差异

1.save/load与export/import 

docker save 用来将一个或多个image打包保存。

如:将本地镜像库中的image1和image2打包到images.tar中

docker save -o images.tag  image1:v1 image2:v1

docker save 也可以打包container,保存的是容器背后的image.

docker load用于将打包的tar中包含的镜像load到本地镜像库,但不能重命名其中的镜像名。

docker load -i images.tar

docker export 打包container文件系统

docker export -o thecontainer.tar container_name

使用 docker import 载入,可以为新镜像指定name和tag

docker import thecontainer.tar newimagename:tag

总结一下

  1. docker save保存的是镜像(image),docker export保存的是容器(container);
  2. docker load用来载入镜像包,必须是一个分层文件系统,必须是是save的包;
    docker import用来载入容器包,但两者都会恢复为镜像;
  3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
  4. docker export的包会比save的包要小,原因是save的是一个分层的文件系统,export导出的只是一个linux系统的文件目录

2.run与create ,exec

docker create:从镜像创建不启动容器
docker run :根据镜像创建一个容器并运行一个命令,操作的对象是 镜像;
docker exec :在运行的容器中执行命令,操作的对象是 容器。
docker start:启动一个已存在容器

3.dockerfile的run、cmd、entrypoint指令区别

docker run [OPTIONS] IMAGE [COMMAND][ARG...]
(1)run在building 时运行,可以写多条。
(2)cmd和entrypoint可以在运行容器时运行,只能写一条,如果写多条,最后一条生效。
(3)cmd在run时可以被command覆盖,entrypoint不会被command覆盖,但可以指定一entrypoint覆盖。
(4)entrypoint的值是要运行的命令,cmd会被当做entrypoint的选项。

RUN <command> (shell格式)
RUN ["executable","param1","param2"]  (exec格式,推荐格式)

CMD <command> (shell格式)
CMD ["executable","param1","param2"]  (exec格式,推荐格式)

ENTRYPOINT <command> (shell格式)
ENTRYPOINT ["executable","param1","param2"]  (exec格式,推荐格式)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值