docker常用命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker常用命令相关的知识,希望对你有一定的参考价值。

  • 当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用?--name?标识来命名
  • -d 让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下
    [[email protected] ~]# docker run nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
    hello world
    hello world
    hello world
    hello world
[[email protected] ~]# docker run -d nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
2939156e31bb2913453aaa424214376c382aabef2bf1903e723e2ad9f6330e35
[[email protected] ~]# docker ps 
CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS              PORTS                NAMES
2939156e31bb        nginx                                          "/bin/sh -c ‘while..."   17 seconds ago      Up 15 seconds       80/tcp               youthful_hodgkin
  • 此时用 docker logs 来查看日志

    [[email protected] ~]# docker logs -f -t 293915
    2018-12-26T10:34:40.558068000Z hello world
    2018-12-26T10:34:41.559143000Z hello world
    2018-12-26T10:34:42.560398000Z hello world
    2018-12-26T10:34:43.561626000Z hello world
    2018-12-26T10:34:44.562831000Z hello world
    2018-12-26T10:34:45.564119000Z hello world

    -f 跟踪实时日志
    --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
    --tail string 从日志末尾显示多少行日志, 默认是all
    -t 显示时间戳
    --until string 显示自某个timestamp之前的日志,或相对时间

    [[email protected] ~]# docker logs -f -t --tail=10 293915  
    [[email protected] ~]#  docker logs -t --since="2018-12-26T10:48Z" 293915             2018-12-26T10:48:00.605556000Z hello world
    2018-12-26T10:48:01.607088000Z hello world
    2018-12-26T10:48:02.608282000Z hello world
    2018-12-26T10:48:03.609575000Z hello world
    2018-12-26T10:48:04.610942000Z hello world
  • stop

    [[email protected] ~]#  docker stop 293915                                      
    293915
    [[email protected] ~]# docker ps -a    
    CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS                        PORTS                NAMES
    2939156e31bb        nginx                                          "/bin/sh -c ‘while..."   16 minutes ago      Exited (137) 14 seconds ago                        youthful_hodgkin
  • ?docker ps?查看容器名称
  • docker:?Docker 的二进制执行文件。
  • run:与上面的 docker 组合来运行一个容器
  • -d:让容器在后台运行。
  • 通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力

    • -t:在新容器内指定一个伪终端或终端。
    • -i:允许你对容器内的标准输入 (STDIN) 进行交互。
  • ?-P?参数创建一个容器
  • 两种方式的区别是:
  • -P :是容器内部端口随机映射到主机的高端口。
  • -p :?是容器内部端口绑定到指定的主机端口。
    • docker run -d -P training/webapp python app.py
    • docker run -p 127.0.0.1:5000:5000/udp training/webapp python app.py
  • 默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上?/udp
  • docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubunt
  • 各个参数说明:
    • -m: 提交的描述信息
    • -a: 指定镜像作者
    • e218edb10161:容器ID
    • runoob/ubuntu:v2: 指定要创建的目标镜像名
  • docker build -t runoob/centos:6.7 .
    • -t?: 指定要创建的目标镜像名
    • .?: Dockerfile?文件所在目录,可以指定Dockerfile?的绝对路径

以上是关于docker常用命令的主要内容,如果未能解决你的问题,请参考以下文章

Docker 常用命令

docker常用命令速查

Docker 常用命令

Docker 常用命令

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

提效小技巧——记录那些不常用的代码片段