• Docker常用命令[2]


    Docker命令 基本都可以使用 --help查看,比如 docker --help;  docker run --help

     

    帮助命令

    docker version
    
    docker info
    
    docker --help  // 可以看到可用的命令及解释

    镜像命令

    • 列出本机中的所有镜像
    docker images [OPTIONS]

    OPTIONS 说明:
    -a 列出本地所有的镜像(含中间映射层)
    -q 只显示镜像ID
    --digests 显示镜像的摘要信息
    --no-trunc 显示完整的镜像信息

    这些参数可以使用--help查看,如 docker images --help
    • 查找镜像
    docker search 镜像名称
    • 拉取镜像
    docker pull 镜像名称[:TAG]

    TAG没写,则默认拉取latest
    • 删除镜像
    删除镜像 docker rmi 镜像名称/镜像id
    删除单个 docker rmi [OPTIONS] 镜像ID
    删除多个 docker rmi [OPTIONS] 镜像名1:TAG 镜像名2:TAG
    删除全部 docker rmi -f $(docker images -qa)

    OPTIONS 说明:
    -f       Force removal of the image
    --no-prune  Do not delete untagged parents
    • 创建镜像

       当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求,或者需要修改镜像时,我们可以通过以下两种方式对镜像进行更改。

        1、从已经创建的容器中更改镜像,并且提交这个镜像

    docker commit -m=""提交的描述信息 -a="作者" 容器ID 要创建的目标镜像名:[标签名]

    docker commit 提交副本使之成为一个新的镜像

        2、使用 Dockerfile 指令来创建一个新的镜像

        DockerFile解析[5]

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

    docker build -t guiji/myCentos:v1 .      // 使用当前目录的 Dockerfile 创建镜像,标签为 guiji/myCentos:v1  
                             // 注意最后有个点,默认使用当前路径下的名为"Dockerfile"的文件进行构建
    docker build github.com/creack/docker-firefox  // 使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像
    docker build -f /opt/dockerTest/Dockerfile .   // 通过 -f Dockerfile 文件的位置
    -f :指定要使用的Dockerfile路径;
    -t: 镜像的名字及标签;
    • 镜像构建历史
    docker history 镜像ID/镜像名  # 需要显示完整信息,加上--no-trunc=true
    • 更新镜像
    在运行的容器内使用 apt-get update 命令进行更新。
    在完成操作之后,输入 exit 命令来退出这个容器。
    通过命令 docker commit 来提交容器副本
    • 推送镜像到仓库 
    docker push

    阿里云开发者云平台
    https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
    先创建命名空间,然后创建仓库名

    从阿里云拉取镜像:
    docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
    推送镜像:
    docker login registry.cn-hangzhou.aliyuncs.com // 阿里云容器控制台,基本信息页面会有介绍 (输入阿里云账户全名,密码是镜像仓库的密码,不是阿里云登录密码!)
    docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
    docker push registry.cn-hangzhou.aliyuncs.com/命名空间/mycentos:[镜像版本号]
    • 导出镜像
    docker export
    • 导入镜像
    docker import

    容器命令

    • 查看容器
    docker ps [OPTIONS]       // 查看当前运行中的容器
    docker ps -a           // 查看所有容器
    • 运行容器
    
    
    docker run --name demo_nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
    docker run -itd centos /bin/bash
    docker run -d centos // 这样的话创建容器之后会立即关闭,docker ps -a进行查看,会发现容器已经退出。因为Docker容器后台运行,就必须有一个前台进程。
    
    说明:
    --name          给启动的容器指定一个名称,不指定的话会随机生一个
    -i              以交互模式运行容器,通常与-t同时使用
    -t              为容器重新分配一个伪输入终端,通常与-i同时使用
    -d              后台运行容器,并返回容器ID,也即启动守护式容器
    -p 8080:80      (小写p)宿主机端口:Docker容器内端口
    -P:        (大写P)随机端口映射
    /bin/bash: 放在镜像名后的是命令,这里我们希望有个交互式的shell。因此用的是 /bin/bash
    -v         数据卷挂载 主机文件路径:容器内文件路径:ro (:ro 代表只读)
    -e         环境变量 key=value 形式
    • 进入容器

      在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:  

    docker attach [OPTIONS] CONTAINER
    docker exec [OPTIONS] CONTAINER      // 推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

    docker exec -it 6daa936f0564 /bin/bash
    • 退出容器
    exit    // 容器停止退出;docker exec进入时,exit退出容器,容器不会停止

    ctrl+P+Q  // 容器不停止退出
     
    • 查看容器日志
    docker logs -f -t --tail 3 容器ID 
    
    -t 是加入时间戳
    -f 跟随最新的日志打印
    --tail 数字显示最后多少条
    • 查看容器内的进程
    docker top 容器ID
    docker stats #查看各容器cpu、内存占用率
    • 查看容器内部细节
    docker inspect 容器ID  // 返回的是个json格式的信息
    • 文件拷贝
    docker cp 容器ID:容器内路径 目的主机路径
    docker cp 宿主机文件路径 容器ID:容器内路径
    • 停止容器
    docker stop 容器ID或容器签名(names)
    docker kill 容器ID或容器签名(names) // 强制停止容器
    • 启动容器
    docker start 容器ID或容器签名(names)
    • 重启容器
    docker restart 容器ID或容器签名(names)
    • 删除容器
    docker rm 容器ID或者容器签名(names)
    docker rm -f $(docker ps -a -q) 删除全部容器

    小总结:

     

  • 相关阅读:
    SentiAnalysis
    大数据索引技术 B+ tree vs LSM tree
    Regression, 回归问题
    Data Mining with R
    Why Vector Clock are Easy or Hard?
    How to know what an HRESULT code means?
    如何判断数据库表的某个列上有重复值的记录存在?
    关于SharePoint 2010里Servers in farm页面里status意义的澄清
    SharePoint Security系列 之二 CrossSite Request Forgery
    从MOSS2007升级到SharePoint2010后Report Server content types升级失败
  • 原文地址:https://www.cnblogs.com/dong320/p/13871737.html
Copyright © 2020-2023  润新知