• Docker 常用命令和命令集结


    常用命令

    查看版本

    docker version
    

    查看系统信息

    docker info
    

    显示 Docker 系统信息,包括镜像和容器数。

    搜索镜像

    docker search keyword
    

    从 Docker Hub 中搜索符合条件的镜像。

    拉取镜像

    docker pull imagename
    

    从 Docker Hub 中拉取或者更新指定镜像。

    列举镜像

    docker images
    

    查看当前已经下载完毕的镜像

    删除镜像

    docker rmi imagename
    

    强制删除

    docker rmi -f imagename
    

    删除多个镜像

    docker rmi image:latset postgres:lastet
    

    删除指定名字的镜像

    查看镜像创建历史

    docker history imagename
    

    查看指定镜像的创建历史

    查看当前的容器

    docker ps
    

    启动、停止、重启、杀死指定容器

    docker start containername
    docker stop containername
    docker restart containername
    dcoker kill containername
    

    启动、停止和重启一个或多个指定容器。

    保存和加载镜像状态

    docker save -i "debian.tar"
    docker save > "debian.tar"
    

    将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

    docker load < debian.tar
    docker load -i "debian.tar"
    

    从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

    docker export <container>
    docker export nginx-01 > export.tar
    

    将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

    cat export.tar  "p">| docker import - imported-nginx:latest
    docker import http://example.com/export.tar
    

    从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

    命令集结

    Docker 命令集

      attach   commit   diff     export   history import  insert    kill       login   port    
      pull       restart    rmi     save      start    tag       version  build   cp       events  
      help      images  info     inspect  load     logs     ps         push   rm       run     
      search  stop       top     wait
    

    docker help:

      docker help [COMMAND]
      例: docker help run
       docker version: 显示Docker版本
       docker info: 显示Docker信息
    

    docker attach: 挂载正在后台运行的容器到前台

      docker attach [OPTIONS] Container
    

    docker run: 在一个新的容器中执行命令 (CTRL-p CTRL-q 退出至后台运行)
      docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    sudo docker run -i -t ubuntu:14.04 /bin/bash         启动一个新的Ubuntu容器
    sudo docker run --rm -i -t ubuntu:14.04 /bin/bash   建议新手测试加上 -—rm
    sudo docker run -i -t --name "private_container" ubuntu:14.04 /bin/bash
    

    docker ps: 列出当前容器
      docker ps [OPTIONS]
      命令参数:

    -a, --all=false            显示所有容器,包括当前没有运行的容器
    -f, --filter=[]               按条件过滤容器, 可选的过滤选项:
    exited=<int> 容器的返回值
    -l, --latest=false       显示最新的一个容器
    -n num  显示最新的N个容器
    --no-trunc=false       不要截断输出
    -q, --quiet=false       仅显示容器ID
    -s, --size=false        显示容器大小
    
    docker ps                              当前正在运行的容器
    docker ps -a                          当前正在运行或是停止的容器
    docker ps -a -q --no-trunc    获得当前所有容器的ID,不截断输出
    docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q--no-trunc) | sed 's|s|
    |g' |sort | uniq -u)
    删除当前不在运行状态的容器ID,也可以把前面改成docker rm
    

    docker images: 列出当前镜像
      docker images [OPTIONS] [NAME]
      命令参数:

    -a, --all=false            显示所有镜像,包括中间生成的临时镜像
    -f, --filter=[]               通过标签过滤 (i.e. 'dangling=true')
    --no-trunc=false        不要截断输出
    -q, --quiet=false        仅显示容器ID
    
    docker images                                   显示当前仓库中的镜像
    docker images -a                               显示当前仓库中的镜像与临时镜像
    docker images -a -q --no-trunc        显示当前仓库中的镜像与临时镜像的ID,不截断输出
    

    docker logs: 显示容器的日志

    docker logs CONTAINER
    命令参数:
    -f, --follow=false               等待容器后续的输出(类似 tail -f)
    -t, --timestamps=false     显示时间戳
    --tail="all"
    
    sudo docker logs 7bb0e258aefe
    sudo docker logs --timestamps=true 7bb0e258aefe
    sudo docker logs --timestamps=true 7bb0e258aefe > 7bb0e258aefe.log
    终端A:
    sudo docker logs --follow 7bb0e258aefe
    终端B:
    sudo docker attach 708cc7ec0f23         (随便执行一些命令可以看到终端A会有实时输出)
    

    docker inspect: 显示镜像或容器的详细信息

    docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...]
      命令参数:
      -f, --format=""                  选择输出内容,–format="{{.NetworkSettings.IPAddress}}"
    
    sudo docker inspect 7bb0e258aefe
    sudo dockerinspect --format "{{.State.Pid}}" 7bb0e258aefe
    

    docker stop: 停止运行中的容器 (CTRL-d 强制退出, Exited (0))

    Docker stop [OPTIONS] CONTAINER [CONTAINER...]
      命令参数:
      -t, --time=10                    杀掉容器进程之前,等待的时间
      例子:
    
    sudo docker stop 7bb0e258aefe
    

    docker kill: 杀掉一个运行中的容器 (Exited (-1))

    docker kill [OPTIONS] CONTAINER [CONTAINER...]
      命令参数:
      - s, --signal="KILL"          选择向容器发出的Signal
      例子:
    sudo docker kill 7bb0e258aefe
    

    docker start: 重启停止的容器

    Docker start CONTAINER [CONTAINER...]
      命令参数:
      -a,--attach=false         Attach container'sSTDOUT and STDERR and forward allsignals to the process
      -i,--interactive=false   Attach container'sSTDIN
      例子:
    
    sudo docker start 7bb0e258aefe
    

    docker restart: 重启运行中的容器

    docker restart [OPTIONS] CONTAINER [CONTAINER...]
      命令参数:
      -t, --time=10                     杀掉容器进程之前,等待的时间
      例子:
    
    sudo docker restart 7bb0e258aefe
    

    docker cp: 拷贝容器中的文件

    docker cp CONTAINER:PATH HOSTPATH
      例子:
    
    docker cp c3f279d17e0a:/home/hyzhou/answer.txt .  将镜像中的/home/hyzhou/answer.txt文件拷贝到当前目录下
    

    docker rm: 删除容器

    docker rm [OPTIONS] CONTAINER [CONTAINER...]
      命令参数:
      -f, --force=false              强制删除容器(使用SIGKILL)
      -l, --link=false                 Removethe specified link and not the underlyingcontainer
      -v, --volumes=false        Removethe volumes associated with the container
    
    docker rm my_ubuntu               删除容器
    docker rm 708cc7ec0f23           删除容器
    docker rm $(docker ps -a -q)    删除所有容器
    

    docker top: 查看容器输出

    docker top CONTAINER [ps OPTIONS]
      例子:
      [ps OPTIONS]的意思是, 你可以在这个命令后面加上使用ps命令时的各种参数
    
    sudo docker top 708cc7ec0f23
    
    sudo docker top 708cc7ec0f23 aux
    

    docker events: 实时监听容器的事件

    docker events [OPTIONS]
      命令参数:
      --since=""                      显示某一个时间戳之后的events
      --until=""                        实时监听到某个时间戳为止
    
    A终端:
    sudo docker events                             终端A等待Docker系统信息
    sudo docker events --since 1378216169
    sudo docker events --since '2013-09-03'
    sudo docker events--since '2013-09-03 15:49:29'
    sudo docker events --since'2013-09-03 15:49:29 +0200CEST'
    sudo docker events > docker.log &   后台记录Docker的容器事件
    B终端:
    sudo docker restart 708cc7ec0f23     从B终端关闭容器
    A终端显示:
    2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) die
    2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) start
    2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) restart
    

    docker history: 显示镜像的历史记录

    docker history [OPTIONS] IMAGE
    命令参数:
    --no-trunc=false 不要截断输出
    -q, --quiet=false 仅显示容器ID
    

    docker search: 在Docker Hub上寻找镜像

    docker search TERM
      命令参数:
      --automated=false         使用Github或BitBucket的源代码自动构建
      --no-trunc=false             不要截断输出
      -s, --stars=0                   只显示Star数量超过N的镜像
      例子:
      docker search --starts=10 ubuntu
    

    docker pull: 从远程拉取镜像

    docker pull NAME[:TAG]
    例子:
    docker pull ubuntu:latest
    

    docker push: 推送镜像到远程仓库

    docker push NAME[:TAG]
    例子:
    docker push hyzhou/ubuntu:3.2.3
    

    docker diff: 列出镜像中文件和目录的变化

    docker diff CONTAINER
    命令输出: 输出一共有三种
    A- Add
    D- Delete
    C- Change
    例子:
    diff显示的是镜像和当前运行的容器之间的区别,所以diff的基础是IMAGE
    下面例子中的b705fc4f4a50和708cc7ec0f23,内容其实是一样的
    
    sudo docker ps -a
    CONTAINERID        IMAGE                    COMMAND                CREATED             STATUS
    b705fc4f4a50        new:latest               "/bin/bash"            49 seconds ago      Up 49 seconds
    708cc7ec0f23        ubuntu:latest            "/bin/bash"            9 minutes ago       Up 9 minutes
    sudo docker diff 7bb0e258aefe
    C/root
    A/root/new.txt
    sudo docker diff b705fc4f4a50
    

    docker commit: 将容器打包成新的镜像

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    命令参数:
    -a, --author="" 作者信息,"John Hannibal Smith <hannibal@a-team.com>"
    -m, --message="" 提交信息
    -p, --pause=true 在提交镜像时暂停容器
    
    sudo docker ps
    ID                  IMAGE               COMMAND             CREATED             STATUS
    c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
    197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours
    docker commitc3f279d17e0a Hyzhou/my_ubuntu:3.2.3
    docker commit -a "Hyzhou<hyzhou@qq.com>" -m "addthe new software" c3f279d17e0aHyzhou/my_ubuntu:3.2.3
    docker images
    REPOSITORY                        TAG                 ID                  CREATED             VIRTUAL SIZE
    Hyzhou/my_ubuntu                  3.2.3               f5283438590d        16 seconds ago      335.7 MB
    

    docker build: 使用Dockerfile构建新镜像

    docker build [OPTIONS] PATH|URL|-
    
      命令参数:
      --force-rm=false              移除构建时生成的中间容器
      --no-cache=false             Donot use cache when building the image
      -q, --quiet=false               不显示容器的输出
      --rm=true                         构建成功后,移除构建时生成的中间容器
      -t, --tag=""                        构建成功后,新建镜像的名称
    

    docker tag: 为镜像加上标签

    docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
      命令参数:
      -f, --force=false                强制打上标签?
    
    sudo docker tag ubuntu:latest hyzhou/my_ubuntu:3.2.3    给ubuntu:latest打上新TAG:hyzhou/my_ubuntu:3.2.3
    sudo dockertag eb601b8965b8 ubuntu:latest             给eb601b8965b8镜像打上TAG: ubuntu:latest(会转换原有的TAG指向)
    

    docker save: 将image保存为tar压缩文件

    docker save [OPTIONS] IMAGE [IMAGE...]
    -o, --output=""                  写入到一个文件中作为输出,默认是标准输出流
    例子:
    docker save --output ubuntu.tar ubuntu:latest  将Ubuntu的最新镜像打包为ubuntu.tar
    docker save ubuntu:latest > ubuntu.tar          将Ubuntu的最新镜像打包为ubuntu.tar
    

    docker load: 将tar压缩文件保存为image

    Docker load [OPTIONS]
    
      命令参数:
      -i, --input=""                    读取一个压缩文件作为输入,默认是标准输入流
    
    docker load --input ubuntu.tar                  读取ubuntu.tar作为镜像
    docker load < ubuntu.tar                        读取ubuntu.tar作为镜像
    

    docker export: 把容器系统文件打包并导出来,方便分发给其他场景使用。

    docker export CONTAINER
    
    例子:
    sudo docker export my_ubuntu > ubuntu.tar 将Ubuntu的最新镜像打包为ubuntu.tar
    

    docker import: 加载容器系统文件

    docker import URL|- [REPOSITORY[:TAG]]
    例子:
    sudo docker import http://example.com/exampleimage.tgz
    cat exampleimage.tgz | sudodocker import -exampleimagelocal:new
    
  • 相关阅读:
    c#项目架构搭建经验
    c++ template怎么使用及注意事项
    c++怎么将一个类,拆分出接口类,和实现类
    c++l类
    错过C++
    Fixed 鸟粪一样的TreeView下的NodeMouseDoubleClick Bug
    Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)
    Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
    Oracle 12C 新特性之级联truncate
    Oracle 12C 新特性之扩展数据类型(extended data type)
  • 原文地址:https://www.cnblogs.com/craigtaylor/p/10975566.html
Copyright © 2020-2023  润新知