docker容器技术学习笔记(2、容器常用操作)

一、运行容器

  • docker run 是启动容器的方法。在讨论 Dockerfile 时我们已经学习到,可用三种方式指定容器启动时执行的命令:
CMD 指令。
ENTRYPOINT 指令。
在 docker run 命令行中指定。
  • 让容器长期运行
docker run 加上参数 -d 以后台方式启动容器
docker run 通过 --name 参数为容器命名

二、两种进入容器的方法

  • docker attach
docker attach <container>
  • docker exec
docker exec -it <container> bash|sh
  • attach VS exec
    attach 与 exec 主要区别如下:
    1、attach 直接进入容器 启动命令 的终端,不会启动新的进程。
    2、exec 则是在容器中打开新的终端,并且可以启动新的进程。
    3、如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。
    当然,如果只是为了查看启动命令的输出,可以使用 docker logs 命令:
docker logs -f <container>

三、运行容器最佳实践

  1. 服务类容器以 daemon 的形式运行,对外提供服务。比如 web server,数据库等。通过 -d 以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec -it 进入容器。
  2. 工具类容器通常给能我们提供一个临时的工作环境,通常以 run -it 方式运行,执行 exit 退出终端,同时容器停止。

四、容器其他常用操作

  • stop/start/restart 容器
    1、容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号。如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号。
    2、docker start 会保留容器的第一次启动时的所有参数。
    3、启动容器时设置 --restart 意味着无论容器因何种原因退出(包括正常退出),就立即重启。该参数的形式还可以是 --restart=on-failure:3,意思是如果启动进程退出代码非0,则重启容器,最多重启3次。

  • pause/unpause 容器
    处于暂停状态的容器不会占用 CPU 资源,直到通过 docker unpause 恢复运行。

  • 删除容器
    docker rm 一次可以指定多个容器,如果希望批量删除所有已经退出的容器,可以执行如下命令:
    docker rm -v $(docker ps -aq -f status=exited)
    PS:docker rm 是删除容器,而 docker rmi 是删除镜像。

五、容器生命周期

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容