• Docker 入门 3 容器基本操作


    启动容器

    单次启动容器

    docker run [image] [命令]
    

    交互式容器

    docker run -i -t <image> /bin/bash
    
    • -i : --interative=true | fasle ,默认是 false,告诉 docher 守护进程为容器始终打开标准输入
    • -t :--tty=true | false ,默认是 false,为容器创建一个伪 tty 终端
    • /bin/bash:在容器启动时运行 bash 命令

    自定义容器名

    docker run --name=<自定义名> -i -t <image> /bin/bash
    

    第一次启动

    docker run -i -t ubuntu /bin/bash
    

    第一次启动尚未用过的容器(比如:安装完 Docker 第一次创建 Ubuntu 容器),会提示无法在本地找到映像“ubuntu:最新版” ,然后执行下载:

    Unable to find image 'ubuntu:latest' locally
    latest: Pulling from library/ubuntu
    423ae2b273f4: Pull complete
    de83a2304fa1: Pull complete
    f9a83bce3af0: Pull complete
    b6b53be908de: Pull complete
    Digest: sha256:04d48df82c938587820d7b6006f5071dbbffceb7ca01d2814f81857c631d44df
    Status: Downloaded newer image for ubuntu:latest
    root@e4e83623d3a0:/#
    

    可以看到容器 id 为:e4e83623d3a0


    以守护态运行容器

    交互式容器转守护态

    docker run -i -t --name=ubuntu_test [image] /bin/bash
    

    以守护形式运行该容器,前输入 [Ctrl+P] ,再输入 [Ctrl+Q]

    以守护态启动容器

    docker run -d [-i] [-t] [id/容器名] [/bin/bash]
    
    • -d :后台启动
    • 其余参数同交互式创建

    创建成功会返回容器的长id,过程如下:

    $ docker run -d ubuntu
    4021afee76279836d4b497b55a8e921f1ade8e993bebfe0f8a02b799a2a7df7a
    

    查看容器列表

    docker ps [-a] [-l]
    
    • 无参数:docker ps 显示当前运行的容器,如果容器停止了,表格为空。
    • -a :显示所有容器
    • -l :显示最新 创建 的容器

    查看容器信息

    docker inspect [CONTAINER NAME/ID]
    

    停止和启动停止容器

    暂停容器

    docker pause [CONTAINER NAME/ID]
    

    终止容器

    docker stop [CONTAINER NAME/ID]
    

    kill 命令也能终止容器,为什么不推荐使用它呢?

    stop 支持“优雅退出”。先发送 SIGTERM=19 信号,在一段时间之后(10s)再发送 SIGKILL=9 信号。Docker 内部的应用程序可以接收 SIGTERM=19 信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。

    kill 则发送 SIGKILL=9 信号,应用程序直接退出。

    启动停止容器

    docker start [-i] [CONTAINER NAME/ID]
    
    • -i :交互方式启动

    重启容器

    docker restart [CONTAINER NAME/ID]
    

    过程:先 stop 终止,再 start 启动。

    进入容器

    推荐使用 exec 命令进入容器。

    exec

    exec 用以在容器中执行任意命令,在运行容器中启动新进程。

    docker exec [-d] [-i] [-t] [CONTAINER NAME/ID] [COMMAND] [ARG]
    

    进入容器:

    docker exec -it [CONTAINER NAME/ID] /bin/bash
    
    • 打开容器的一个新的 bash 终端,并以 -it 保持标准输入打开。

      不加 -it/bin/bash ,则只执行一次命令并输出。示例:

      $ docker exec blivechat ls
      Dockerfile
      $ 
      

    attach

    docker attach [OPTIONS] [CONTAINER NAME/ID]
    
    • Options:
            --detach-keys string   指定推出 attach 模式的快捷键序列
            --no-stdin             是否打开标准输出
            --sig-proxy            是否代理收到的系统信号给应用程序
      

    注意:多个 attach 同时访问时,其中一个进行操作,所有 attach 都同步显示。当然,单个阻塞全部阻塞。

    查看容器输出、日志

    docker logs [-f] [-t] [--tail] [CONTAINER NAME/ID]
    
    • 无参数:不指定,返回所有日志

    • -f :--follow=true | false ,默认为 false ,一直跟踪日志变化并返回结果。实时返回,Ctrl+C 停止返回。

    • -t :--timestamps=true | false ,默认为 false,在返回结果上加上时间戳

    • --tail :后跟需返回的日志数量。

    查看容器进程

    docker top [CONTAINER NAME/ID]
    

    复制文件

    docker cp [FILE] [CONTAINER NAME/ID]:[PATH]
    

    [FILE] 为宿主机文件, [CONTAINER NAME/ID]:[PATH] 为指定的容器存储文件的目标路径。

    查看端口映射

    docker port [CONTAINER NAME/ID]
    

    更新配置

    docker update [OPTIONS] CONTAINER [CONTAINER...]
    

    OPTIONS 说明

    名称 描述
    --blkio-weight 阻塞IO (相对权重),介于10到1000之间,0表示禁用(默认禁止)
    --cpu-period 限制CPU CFS(完全公平的调度程序)期限
    --cpu-quota 限制CPU CFS(完全公平的调度程序)配额
    --cpu-rt-period API 1.25+,将CPU实时时间限制为微秒
    --cpu-rt-runtime API 1.25+,将CPU实时运行时间限制为微秒
    --cpu-shares, -c CPU份额(相对权重)
    --cpus API 1.29+,CPU数量
    --cpuset-cpus 允许执行的CPU(0-3,0,1)
    --cpuset-mem 允许执行的MEM(0-3,0,1)
    --kernel-memory 内核内存限制
    --memory-swap 交换限制等于内存加交换,“-1”以启用无限交换
    --memory-reservatio 内存软限制
    --memory, -m 内存限制
    --pids-limit API 1.40+,调节容器pids限制(-1表示无限制)
    --restart 容器退出时重新启动策略以应用

    更多用法请查看:https://docs.docker.com/engine/reference/commandline/update/

    本引用段落来自(https://blog.lanweihong.com/posts/26195/)。

  • 相关阅读:
    Linux学习之十九-Linux磁盘管理
    Linux学习之十八-sudo分权管理
    Linux学习之十七-配置Linux简单的脚本文件自启动
    Linux系统救援模式应用:恢复误删的系统文件
    Linux学习之十六-Linux用户管理
    Linux学习之十五-Linux文件特殊权限和附加权限
    Linux学习之十四-Linux文件和目录权限
    Linux学习之十三-vi和vim编辑器及其快捷键
    Linux学习之十二-Linux文件属性
    Linux系统救援模式应用:单用户模式找回密码
  • 原文地址:https://www.cnblogs.com/Yogile/p/12507742.html
Copyright © 2020-2023  润新知