Docker容器与镜像

1 容器

1.1 容器简介

容器(Container)是一种轻量级、可移植、并将应用程序进行打包的技术,使应用程序可以在几乎任何地方以相同的方式运行

  • Docker 将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。
  • 容器具备一定的生命周期,可以借助 docker ps 命令查看正在运行的容器。

1.2 容器与虚拟机

Docker 容器与虚拟机的相同点

  • 容器与虚拟机一样,都会对物理硬件资源进行共享使用
  • 容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等)
  • 容器中或虚拟机中都可以安装各种应用,如redis、mysql、nginx等。
  • 容器创建后,会存储在宿主机上:/var/lib/docker/containers/
    Docker 容器与虚拟机的不同点
  • 虚拟机的创建、启动和关闭都是基于一个完整的操作系统。一个虚拟机就是一个完整的操作系统。而容器直接运行在宿主机的内核上,其本质上是一系列进程的结合。
  • 容器是轻量级的,虚拟机是重量级的。首先容器不需要额外的资源来管理(不需要Hypervisor、GuestOS),虚拟机额外更多的性能消耗;其次,创建、启动或关闭容器,如同创建、启动和关闭进程一样轻松。

1.2 容器的生命周期

Docker-容器生命周期

1.2.1 容器创建 - docker create

  • 利用镜像创建一个 Created 状态的待启动容器
  • docker create [OPTIONS] IMAGE {COMMAND] [ARG...]
    • COMMAND/ARG 表示容器启动后,需要在容器中执行的命令,如ps,ls等命令
  • 示例
    • 使用“ubuntu”镜像,创建名称为“test”,执行命令为“python”的容器:docker create --name test ubuntu python
    • 使用“ubuntu”镜像,创建名称为“test”,执行命令为“python”的容器,并提供终端和标准输入:docker create -ti --name test ubuntu python

1.2.2 容器删除 - docker rm

  • 删除一个或多个容器
  • docker rm [OPTIONS] CONTAINER [CONTAINER...]

1.2.3 容器启动 - docker start

  • 启动一个或多个停止的容器
  • docker start [OPTIONS] CONTAINER [CONTAINER...]
  • 示例
    • 启动“test”容器:docker start -ai test

1.2.4 容器创建并运行 - docker run

  • 在一个新的容器中运行命令
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 示例
    • docker run -ti ubuntu python == docker create -ti ubuntu python + docker start -ai CONTAINER_ID
    • 后台运行:docker run -dti ubuntu python == docker create ubuntu python + docker start CONTAINER_ID

1.2.5 容器关闭 - docker stop

  • 关闭一个或多个运行中的容器
  • docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • 示例
    • 等待3秒后关闭容器:docker stop -t 3 CONTAINER_ID

1.2.6 容器终止 - docker kill

  • 关闭一个或多个运行或暂停的容器
  • docker kill

1.2.7 容器暂停 - docker pause/unpause

  • 暂停一个或多个容器
  • docker pause CONTAINER [CONTAINER...]
  • docker unpause CONTAINER [CONTAINER...]

1.2.8 容器重启 - docker restart

  • 重启一个或多个容器
  • docker restart [OPTIONS] CONTAINER [CONTAINER...] == docker stop + docker start

1.3 容器信息查看

1.3.1 容器详细信息查看 - docker inspect

  • 查看容器详细信息
  • docker inspect [OPTIONS] CONTAINER
  • 示例
    • docker inspect -f "{{json .A.B}}" CONTAINER_ID

1.3.2 容器日志信息 - docker logs

  • 查看容器的日志信息(主进程日志信息)
  • docker logs [OPTIONS] CONTAINER
  • 示例
    • docker logs CONTAINER_ID

1.3.3 容器重命名 - docker rename

  • 修改容器的名称
  • docker rename CONTAINER new_name

1.4 容器运行时操作

1.4.1 容器连接 - docker attach

  • 把当前的标准输入、输出、错误流连接到运行的容器当中(连接入主进程)
  • docker attach [OPTIONS] CONTAINER

1.4.2 容器中执行新命令 - docker exec

  • 在一个运行的容器中执行新的命令(开启子进程)
  • docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • 示例
    • docker exec -ti CONTAINER COMMAND [ARG...]

2 容器与镜像

2.1 容器提交 - docker commit

  • 根据容器生成一个新的镜像
  • docker commit [OPTIONS] CONTAINER [RESPOSITORY[:TAG]]
  • 示例
    • docker commit -m "commit message" CONTAINER REPOSITORY:TAG

2.2 容器打包 - docker export

  • 将一个容器打包成一个压缩文件
  • docker export [OPTIONS] CONTAINER
  • 示例
    • docker export -o xxx.tar CONTAINER

2.3 容器打包的导入 - docker import

  • 通过一个容器打包的压缩文件生成镜像文件
  • docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
  • 示例
    • docker import -m "import message" xxx.tar REPOSITY:TAG
      Docker-容器与镜像
  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值