docker容器的生命周期

容器的创建 - docker create

  • 作用
    • 利用镜像创建出一个Created 状态的待启动容器
  • 命令格式
    • docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 常用参数(OPTIONS)
    • -t, --tty                                 分配一个伪TTY,也就是分配虚拟终端
    • -i, --interactive                     即使没有连接,也要保持STDIN打开
    • -- name                                给容器命名,如果没有会随机产生
  • 常用参数(COMMAND\ARG)
    • COMMAND 表示容器启动后,需要在容器中执行的命令,如ps、Is 等命令ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 aux、Is命令的-a等等
docker create --name centos-test centos ls -a

容器的删除 - docker rm

  • 作用
    • 删除一个或者多个容器
  • 命令格式
    • docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    • -f, --force      强制删除正在运行的容器(使用SIGKILL),正在运行或者暂停运行的容器会使用到
docker rm test-centos

容器的启动 - docker start

  • 作用
    • 启动一个或者多个容器,created状态和exited状态都可以使用start来启动
  • 命令格式
    • docker start [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    • -a, --attach                       将当前终端的标准输出绑定到容器中
    • -i, --interactive                  即使没有连接,也要保持STDIN打开
docker start test-centos

容器的创建并启动 - docker run

  • 作用
    • 创建并且启动一个容器
  • 命令格式
    • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 常用参数
    • -t, --tty                                 分配一个伪TTY,也就是分配虚拟终端
    • -i, --interactive                     即使没有连接,也要保持STDIN打开
    • -d, --detach                         容器在后台运行,并且返回容器id

这里的 docker run 相当于 docker create + docker start -a  会自动把终端绑定到容器,如果命令需要提供终端和各种输入,就需要加上 -ti 参数,例如: docker run -ti python,这样就会直接进入终端,如果想要不进入终端或者不打印日志,实现 docker create + docker start 效果,就要加上参数 -d ,该参数表示在后台运行

补充:

# --rm 参数的意思是该容器一旦关闭就会被删除
docker run  -dti --rm centos bash

容器的关闭 - docker stop

  • 作用
    • 暂停正在运行(running)的容器
  • 命令格式
    •  docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    • -t, --time int                延迟关闭时间,这里默认是十秒钟

这里的docker stop 默认会延迟十秒钟关闭,如果在这个时间期间你强行使用ctrl + c 来取消关闭是无法阻止容器关闭的,还有一点就是对一个已经关闭的容器进行关闭是没什么问题的,也就是说不管容器当前状态是否是关闭状态的,使用该命令都会将容器改为关闭状态

容器的关闭 - docker kill

  • 作用
    • 杀死正在运行的容器,会立即杀死不会有延迟
  • 命令格式
    • docker kill [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    •  -s, --signal                 发送给容器的信号,默认是"KILL"

docker killdocker stop -t 0 有什么区别?

kill 命令给容器传递的信号是SIGKILL信号,如果是stop 命令会先给容器发送SIGTERM信号,然后经过-t 的时间之后再发送SIGKILL信号.SIGTERM 会提前告诉进程会关闭,让进程回收内存等等(所以SIGTERM 不一定会暂停) ,更建议使用stop命令

kill的信号可以使用 kill -l 来查看

kill -l

容器的暂停 - docker pause

  • 作用
    • 暂停正在运行的容器
  • 命令格式
    • docker pause CONTAINER [CONTAINER...]

解除容器暂停 - docker unpause

  • 作用
    • 让暂停(Paused状态)的容器运行
  • 命令格式
    • docker unpause CONTAINER [CONTAINER...]

容器的重启 - docker restart

  • 作用
    • 重启容器
  • 命令格式
    • docker restart [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    • -t, --time          定时重启

容器的详细信息 - docker container inspect

  • 作用
    • 查看容器详细信息
  • 命令格式
    • docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
  • 常用参数
    • -f, --format
docker inspect -f '{{.Config.Image}}' my_container

容器的日志信息 - docker logs

  • 作用
    • 查看容器里面的日志信息
  • 命令格式
    • docker logs [OPTIONS] CONTAINER
  • 常用参数
    • --details                提供日志的详细信息
    • -f, --follow             跟踪COMMAND输出
    • -t, --timestamps    显示打印时间

logs查看的是COMMAND的输出结果

容器的重命名 - docker rename

  • 作用
    • 修改容器的名称
  • 命令格式
    • docker rename CONTAINER NEW_NAME

容器运行时操作 - docker attach

如果当前有几个容器在后台运行,这时候想连接容器,查看里面进程的运行状态,或者说在容器当中执行其他命令,就需要用到该操作(会绑定到主进程)(pid为1的)

  • 作用
    • 将当前输入,当前输出,标准错误流连接到容器中
  • 命令格式
    • docker attach [OPTIONS] CONTAINER

容器运行时执行新命令 - docker exec

如果我们想执行一些命令,但又不想影响整个容器主进程的运行,那么就应该使用exec

如果想查看主进程的状态,并且希望操作都能够影响主进程那么就应该使用attach命令

  • 作用
    • 在容器当中执行新命令
  • 命令格式
    • docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • 常用参数
    • -t, --tty                                 分配一个伪TTY,也就是分配虚拟终端
    • -i, --interactive                     即使没有连接,也要保持STDIN打开

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker容器生命周期包括以下几个阶段: 1. 创建(Create):使用Docker镜像创建容器。可以通过`docker run`命令来创建容器,并指定所需的镜像、容器名称、端口映射等参数。在创建过程中,Docker会为容器分配一个唯一的ID,并分配一个虚拟的网络接口和IP地址。 2. 启动(Start):启动已创建的容器。可以使用`docker start`命令来启动已停止的容器,或者在创建容器时使用`docker run`命令的`-d`参数来直接启动容器。启动后,容器中的应用程序开始运行。 3. 运行(Run):容器运行期间,应用程序在容器内部执行。可以通过`docker exec`命令在运行容器中执行额外的命令,如进入容器内部进行调试或管理。 4. 停止(Stop):停止正在运行容器。可以使用`docker stop`命令来停止容器运行Docker将向容器内部发送一个停止信号,容器会执行一些清理和关闭操作后停止运行。 5. 重启(Restart):重新启动已停止的容器。使用`docker restart`命令可以重新启动已经停止的容器Docker会先停止再启动容器。 6. 暂停(Pause):暂停正在运行容器。使用`docker pause`命令可以暂停容器运行容器中的所有进程会被挂起。 7. 恢复(Unpause):恢复已暂停的容器。使用`docker unpause`命令可以恢复被暂停的容器,使其继续运行。 8. 删除(Remove):删除不需要的容器。使用`docker rm`命令可以删除已停止的容器,释放相关资源。 需要注意的是,容器生命周期可以根据需要进行管理,可以根据实际情况选择适当的操作来创建、启动、停止、重启和删除容器,以满足应用程序的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值