zoukankan      html  css  js  c++  java
  • docker命令

    常用命令

    帮助命令

    docker version      
    docker info
    docker [命令] --help

    帮助文档:https://docs.docker.com/reference/

    镜像命令

    docker images 查看所有本地主机上的镜像

    解释

    • REPOSITORY :镜像的仓库 源
    • TAG:镜像的标签
    • IMAGE ID:镜像的ID
    • CREATED:镜像创建时间
    • SIZE:镜像的大小

    通过docker images --help查看可选项有哪些

    可选项:

      -a, --all              #列出所有镜像
      -q, --quiet          #只显示镜像的ID

    可以结合使用,显示所有镜像的ID 

    docker images -aq

    docker search 搜索镜像

    [root@docker ~]# docker search mysql
    NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql                             MySQL is a widely used, open-source relation…   11409     [OK]       
    mariadb                           MariaDB Server is a high performing open sou…   4334      [OK]       
    mysql/mysql-server                Optimized MySQL Server Docker images. Create…   847                  [OK]
    percona                           Percona Server is a fork of the MySQL relati…   553       [OK]       

    解释

    • NAME:镜像名称
    • DESCRIPTION:镜像描述
    • STARS:下载次数

    docker search --help查看可选项

    可选项:

    -f, --filter filter #根据提供的条件过滤输出
        --format string #使用 Go 模板进行漂亮打印搜索
        --limit int #最大搜索结果数(默认 25--no-trunc #不截断输出

    用法:

    docker search mysql -f=stars=3000
    或
    docker search mysql -f stars=3000

    docker pull 下载镜像

    [root@docker ~]# docker pull mysql
    Using default tag: latest #如果不指定版本,默认下载最新版本
    latest: Pulling from library/mysql
    a330b6cecb98: Pull complete #分层下载
    9c8f656c32b8: Pull complete 
    88e473c3f553: Pull complete 
    062463ea5d2f: Pull complete 
    daf7e3bdf4b6: Pull complete 
    1839c0b7aac9: Pull complete 
    cf0a0cfee6d0: Pull complete 
    1b42041bb11e: Pull complete 
    10459d86c7e6: Pull complete 
    b7199599d5f9: Pull complete 
    1d6f51e17d45: Pull complete 
    50e0789bacad: Pull complete 
    Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c #签名
    Status: Downloaded newer image for mysql:latest 
    docker.io/library/mysql:latest #真实地址
    docker pull mysql 等价于 docker pull docker.io/library/mysql:latest

    格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    docker pull mysql:5.7

    docker rmi 删除镜像

    docker rmi -f 镜像id/镜像名称   #删除指定镜像
    docker rmi -f 镜像id/镜像名称 镜像id/镜像名称 镜像id/镜像名称 #删除多个指定镜像
    docker rmi -f $(docker images -aq) #删除全部镜像

    容器使用

    下载镜像

    [root@docker ~]# docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    7a0437f04f83: Pull complete 
    Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
    Status: Downloaded newer image for centos:latest
    docker.io/library/centos:latest

    启动容器

    Docker容器可以使用命令创建:

    docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
    docker run 可选项 镜像名:版本号|@不知道是什么 命令 参数

    可选项:

    --name="name" 容器名字 用于区分容器
    -d  后台方式运行-it 使用交互方式运行,进入容器查看内容(-i:交互式操作,-t:终端)
    -p
        -p ip:主机端口:容器端口
        -p 主机端口:容器端口(常用)
        -p 容器端口
         容器端口
    -P  随机指定端口

    通过centos镜像创建并进入容器

    [root@docker ~]# docker run -it centos /bin/bash
    [root@8952118a9065 /]# ls
    bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

    下图主机名不一样了,说明创建了容器并进入容器了。

    查询容器

    docker ps [OPTIONS]
    空白 #列出当前正在运行的容器
    -a, --all # 列出所有容器
    -n, --last int #显示最近创建的容器(指定显示个数)
    -q, --quiet #只显示编号

    退出容器

    exit #退出容器,并停止容器
    Ctrl+P+Q # 退出容器,但不停止容器

    删除容器

    docker rm 容器Name #删除指定容器,不能删除正在运行的容器
    docker rm -f $(docker ps -aq) # 删除所有容器,包括正在运行的
    docker rm -a -q|xargs docker rm #通过管道 删除获取容器

    启动和停止容器

    docker start 容器id #启动
    docker restart 容器id #重启
    docker stop 容器id #停止
    docker kill 容器id #强制停止

    其他命令

    后台启动容器

    [root@docker ~]# docker run -d centos
    b418e6a530ea0f9d22675b86d4d421eccf2ae8429f062a432dcfb6e16644a67b
    [root@docker ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

    容器使用后台运行,必须有一个前台进程,否则就会自动停止

    [root@docker ~]# docker run -d centos /bin/sh -c "while true;do echo while run;sleep 2;done"
    26c1e4810bcfd10a78fddff5ee1b62eba0ddd0c4d56df2ce0c1e07bd15519736
    [root@docker ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
    26c1e4810bcf   centos    "/bin/sh -c 'while t…"   14 seconds ago   Up 13 seconds             happy_mendel

    日志

    [root@docker ~]# docker logs --help
    
    Usage:  docker logs [OPTIONS] CONTAINER
    
    Fetch the logs of a container
    
    Options:
          --details        Show extra details provided to logs
      -f, --follow         Follow log output
          --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
      -n, --tail string    Number of lines to show from the end of the logs (default "all")
      -t, --timestamps     Show timestamps
          --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

    常用方式:

    [root@docker ~]# docker logs -f -t --tail 10 26c1e4810bcf #显示指定条数的日志
    
    [root@docker ~]# docker logs -ft 26c1e4810bcf #显示全部日志

    查看容器中的进程信息

    docker top 容器id
    [root@docker ~]# docker top 26c1e4810bcf UID PID PPID C STIME TTY TIME CMD root 20256 20238 0 09:17 ? 00:00:00 /bin/sh -c while true;do echo while run;sleep 2;done root 20716 20256 0 09:27 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 2

    查看镜像元数据

    [root@docker ~]# docker inspect --help
    
         docker inspect 可选项 容器Name|容器ID Usage: docker inspect [OPTIONS] NAME
    |ID [NAME|ID...] Return low-level information on Docker objects Options: -f, --format string Format the output using the given Go template -s, --size Display total file sizes if the type is container --type string Return JSON for specified type

    进入当前正在运行的容器

    方式一:

    [root@docker ~]# docker exec --help
         docker exec 可选项 容器id 命令
    Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    
    Run a command in a running container
    
    Options:
      -d, --detach               Detached mode: run command in the background
          --detach-keys string   Override the key sequence for detaching a container
      -e, --env list             Set environment variables
          --env-file list        Read in a file of environment variables
      -i, --interactive          Keep STDIN open even if not attached
          --privileged           Give extended privileges to the command
      -t, --tty                  Allocate a pseudo-TTY
      -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
      -w, --workdir string       Working directory inside the container

    用法

    [root@docker ~]# docker exec -it 26c1e4810bcf /bin/bash
    [root@26c1e4810bcf /]# 

    方式二:

    [root@docker ~]# docker attach --help
         docker attach 可选项 容器id
    Usage:  docker attach [OPTIONS] CONTAINER
    
    Attach local standard input, output, and error streams to a running container
    
    Options:
          --detach-keys string   Override the key sequence for detaching a container
          --no-stdin             Do not attach STDIN
          --sig-proxy            Proxy all received signals to the process (default true)

    用法

    docker attach 容器id

    区别:

    docker exec 进入容器后开启一个新的终端(常用)

    docker attach 进入容器正在执行的终端

    容器和主机交互

    从容器拷贝文件到主机

    [root@docker ~]# docker images #查看镜像
    REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
    mysql        latest    0716d6ebcc1a   11 days ago    514MB
    centos       latest    300e315adb2f   9 months ago   209MB
    [root@docker ~]# docker run -it centos /bin/bash #运行并进入容器
    [root@dbcefddb0dfe /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@dbcefddb0dfe /]# cd /home #进入容器的home目录
    [root@dbcefddb0dfe home]# ls
    [root@dbcefddb0dfe home]# touch testCopy.java #创建拷贝测试文件
    [root@dbcefddb0dfe home]# ls
    testCopy.java
    [root@dbcefddb0dfe home]# exit #退出容器
    exit
    [root@docker ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    [root@docker ~]# docker ps -a
    CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                      PORTS     NAMES
    dbcefddb0dfe   centos    "/bin/bash"   2 minutes ago   Exited (0) 18 seconds ago             happy_morse
    [root@docker ~]# docker cp dbcefddb0dfe:/home/testCopy.java /home #拷贝文件到当前主机的指定目录
    [root@docker ~]# ls
    --add-repo       docker-client         docker-engine            docker-logrotate  initial-setup-ks.cfg  Public
    anaconda-ks.cfg  docker-client-latest  docker-latest            Documents         Music                 Templates
    Desktop          docker-common         docker-latest-logrotate  Downloads         Pictures              Videos
    [root@docker ~]# cd /home #查看
    [root@docker home]# ls
    marw  testCopy.java

    总结:

    attach #进入容器
    build   #通过Dockersfile定制镜像
    commit  #提交当前容器未新的镜像
    cp  #从容器中拷贝只当文件或目录到宿主机中
    create  # 创建一个新的容器,同run,但不启动容器
    diff #查看docker容器变化
    events #从docker服务获取容器实时事件
    exec #进入容器
    export #导出容器的内容流作为一个tar归档文件【对应import】
    history #展示一个镜像形成历史
    images #列出系统当前镜像
    import  #从tar包中的内容创建一个新的文件系统镜像【对应export】
    info #显示系统相关信息
    inspect #查看容器详细信息
    kill #结束指定容器
    load #从一个tar包中加载一个镜像【对应save】
    login #注册或登录一个dockers源服务器
    logout #从当前Docker registry 退出
    logs #输出当前容器日志信息
    port #查看映射端口对象的容器源端口
    pause #暂停容器
    ps #列出容器列表
    pull #从docker镜像源服务器拉取镜像或库镜像
    push #推送指定镜像或库镜像 到docker源服务器
    restart #重启运行的容器
    rm #移除一个或多个容器
    rmi #移除一个或多个镜像(无容器使用的镜像可直接移除,否则先删除相关容器或 -f 强制移除)
    run #创建并运行容器
    save #保存一个镜像未一个tar包【对应load】
    search #在docker hub 中搜索镜像
    start #启动容器
    stop #停止容器
    tag #设置源中镜像标签
    top #查看容器中运行的进程信息
    unpause #取消暂停
    version #查看docker版本号
    wait #截取容器停止时退出状态值 
  • 相关阅读:
    ACTIVE OBJECT 模式
    Node.js
    WordPress — 突破性能瓶颈,使用 WordPress 站群做 SEO 推广
    HttpRequest.Item 属性 和 HttpRequest.QueryString 属性的区别!
    Regex.Replace 方法的性能!(090625最新修改)
    FACTORY 模式
    Indexof String By Byte[]
    [11]DIP:依赖倒置原则
    C#.Net Winform skin 皮肤 大全(转)
    C# 情缘
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15268662.html
Copyright © 2011-2022 走看看