docker容器技术学习笔记(2)

作者: 阳一yayi | 来源:发表于2018-08-22 14:32 被阅读14次

    一、运行容器

    • 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 是删除镜像。

    五、容器生命周期

    相关文章

      网友评论

        本文标题:docker容器技术学习笔记(2)

        本文链接:https://www.haomeiwen.com/subject/hwaeiftx.html