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

    一、帮助命令

    version

    查看Docker版本信息

    docker version
    

    info

    查看Docker系统信息,包括镜像和容器数

    docker info
    

    --help

    查看命令的帮助信息,和Linux的命令的帮助信息一样。

    docker --help
    

    二、镜像命令

    images

    列出本地镜像

    docker iamges
    
    docker后面还可以跟选项参数
    -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
    --digests :显示镜像的摘要信息;
    --no-trunc :显示完整的镜像信息;
    -q :只显示镜像ID。
    
    # 输出选项说明
    REPOSITORY:表示镜像的仓库源
    TAG:镜像的标签
    IMAGE ID:镜像ID
    CREATED:镜像创建时间
    SIZE:镜像大小
    
    # 输出结果
    REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
    redis                        latest              dcf9ec9265e0        8 days ago          98.2MB
    mysql                        5.7                 1e4405fe1ea9        8 days ago          437MB
    centos                       7                   5e35e350aded        2 weeks ago         203MB
    hello-world                  latest              fce289e99eb9        11 months ago       1.84kB
    delron/elasticsearch-ik      2.4.6-1.0           095b6487fb77        19 months ago       689MB
    

    从Docker Hub查找所有对应镜像的信息, 并且还可以加入限制条件

    docker search 某个镜像的名字
    参数:
    --automated: 只列出 automated build类型的镜像;
    --no-trunc: 显示完整的镜像描述;
    -s: 列出stars数不小于指定值的镜像。
    

    pull

    从镜像仓库中拉取或者更新指定镜像

    docker pull [OPTIONS] NAME[:TAG]
    

    tag不写默认拉取最新的镜像, 效果同python的pip不指定版本默认最新。

    rmi

    删除本地一个或多少镜像。使用可以指定镜像名字或者id

    docker rmi [OPTIONS] IMAGE [IMAGE...]
    参数:
    	-f 强制删除
    

    删除单个

    docker rmi -f 镜像id
    

    删除多个

    docker rmi -f 镜像id1:tag id2:tag ...
    

    删除全部

    docker rmi -f $(docker images -aq)
    

    build

    命令用于使用 Dockerfile 创建镜像。

    docker build [OPTIONS] PATH | URL | -
    
    常用参数选项
    -f :指定要使用的Dockerfile路径;
    --quiet, -q :安静模式,成功后只输出镜像 ID;
    --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
    

    三、容器命令

    run

    创建一个新的容器并运行一个命令

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    --name="容器新名字": 为容器指定一个名称;
    -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
    -i:以交互模式运行容器,通常与 -t 同时使用;
    -t:容器重新分配一个伪输入终端,通常与 -i 同时使用;
    -P: 随机端口映射;
    -p: 指定端口映射,有以下四种格式
          ip:hostPort:containerPort
          ip::containerPort
          hostPort:containerPort
          containerPort
    

    以交互式的方式启动容器

    # 先拉取centos:7的镜像, 然后以交互式启动
    [root@localhost ~]# docker run -it centos:7 
    [root@3a3545a4f704 /]# pwd
    /
    

    以守护式方式启动容器

    #使用镜像centos:7以后台模式启动一个容器
    docker run -d centos:7
    
    问题:然后docker ps -a 进行查看, 会发现容器已经退出
    很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
    容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
    

    ps

    列出容器

    docker ps [OPTIONS]
    
    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。
    -q :静默模式,只显示容器编号。
    --no-trunc :不截断输出。
    

    使用方式与docker images类似。

    start/restart/stop

    启动/重启/停止 一个或多个已经被停止的容器

    三者的使用方式一样, 最后跟容器的id或名称
    
    docker start/stop/restart [OPTIONS] CONTAINER [CONTAINER...]
    

    rm

    删除一个或多个容器。

    docker rm [OPTIONS] CONTAINER [CONTAINER...]
    -f :通过 SIGKILL 信号强制删除一个运行中的容器。
    -v :删除与容器关联的卷。
    
    一次性删除多个容器:
    docker rm -f $(docker ps -aq)
    或者
    docker ps -aq | xargs docker rm
    
    # 上面的可以跟多个容器的使用方式都可以类似操作
    

    logs

    获取容器的日志

    docker logs [OPTIONS] CONTAINER
    
    -f : 跟踪日志输出
    --since :显示某个开始时间的所有日志
    -t : 显示时间戳
    --tail :仅列出最新N条容器日志
    

    top

    查看容器中运行的进程信息。

    docker top [OPTIONS] CONTAINER
    

    inspect

    获取容器/镜像的元数据(内部细节), 默认返回的是格式化后的json格式的串。

    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    
    [root@localhost ~]# docker inspect ef9d
    [
        {
            "Id": "ef9d8ce5c46984839ed26639f4cd96feba07ebb3aab609e5b47333ced626ed54",
            "Created": "2019-12-01T09:36:07.557435626Z",
            "Path": "docker-entrypoint.sh",
            "Args": [
                "/usr/local/etc/redis/redis.conf",
                "--appendonly",
                "yes"
            ],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
      ...
    

    commit

    从容器创建一个新的镜像。

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。
    

    logs

    获取容器的日志

    docker logs [OPTIONS] CONTAINER
    

    exec/attach

    进入正在运行的容器并以命令行交互

    docker exec -it 容器id bashShell
    docker attach 容器id
    

    上述两者的区别

    attach: 直接进入容器启动命令的终端,不会启动新的进程

    exec: 是在容器中打开新的终端,并且可以启动新的进程

    cp

    用于容器与主机之间的数据拷贝。

    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
    docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
    

    push

    将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

    docker push NAME[:TAG]
    
    # 以阿里云作为远程仓库为例
    $ sudo docker login --username=自己的账号名 registry.cn-hangzhou.aliyuncs.com
    $ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/名称空间/仓库名称:[镜像版本号]
    $ sudo docker push registry.cn-hangzhou.aliyuncs.com/名称空间/仓库名称:[镜像版本号]
    
  • 相关阅读:
    转-- js(jQuery)获取时间的方法及常用时间类
    jquery 选择器(name,属性,元素)大全
    CSS中LI圆点样式li {list-style-type:符号名称}
    [华为oj]称砝码
    c++中的字符串与数字相互转换
    [华为]DP合唱队形
    [hihoCoder#1032]最长回文子串
    [STL系列]仿函数
    [字符串]寻找一个字符串中最大的公共子串
    [STL系列]STL容器性能比较列表
  • 原文地址:https://www.cnblogs.com/yscl/p/11968656.html
Copyright © 2011-2022 走看看