docker常用命令

  • 当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名
  • -d 让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下
    [root@test32 ~]# docker run nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
    hello world
    hello world
    hello world
    hello world
[root@test32 ~]# docker run -d nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
2939156e31bb2913453aaa424214376c382aabef2bf1903e723e2ad9f6330e35
[root@test32 ~]# 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 来查看日志

    [root@test32 ~]# 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之前的日志,或相对时间

    [root@test32 ~]# docker logs -f -t --tail=10 293915  
    [root@test32 ~]#  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

    [root@test32 ~]#  docker stop 293915                                      
    293915
    [root@test32 ~]# 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
    • docker run --name test -d -p 4000:4000 -p 4050:80 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 的绝对路径
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章