美文网首页
03_Docker基础命令

03_Docker基础命令

作者: 单v纯微笑 | 来源:发表于2021-04-30 16:02 被阅读0次

    参考资料

    Docker命令使用说明

    Docker命令分为多级命令,同级命令可以合并使用,子级命令也可以不加上级命令直接使用。

    所有命令均可通过--help查看对应帮助文档。

    docker [命令] --help
    

    其中:[]包裹内容为可选内容。

    命令语法中的[OPTIONS]参数为--helpOptions选项。

    • 示例
    1. 查看images帮助文档
    docker images --help
    
    • 输出
    # 语法
    Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]
    # 作用
    List images
    # Options选项
    Options:
      -a, --all             Show all images (default hides intermediate images)
          --digests         Show digests
      -f, --filter filter   Filter output based on conditions provided
          --format string   Pretty-print images using a Go template
          --no-trunc        Don't truncate output
      -q, --quiet           Only show numeric IDs
    
    1. 使用
    # 查看所有镜像,并显示镜像摘要
    docker images --digests
    
    • 输出
    REPOSITORY          TAG                   DIGEST                                                                    IMAGE ID            CREATED             SIZE
    hello-world         latest                sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202   bf756fb1ae65        6 months ago        13.3kB
    

    命令集

    Docker系统

    查看版本:docker -v

    查看Docker版本信息。

    • 示例
    docker -v
    # 或
    docker --version
    # 或
    docker version # 详细信息
    

    查看详情:docker info

    查看Docker详细信息。

    • 示例
    docker info
    

    镜像: Images

    查看镜像:docker images

    查看Docker镜像。

    • 语法
    docker images [OPTIONS] [REPOSITORY[:TAG]]
    
    • 示例
    1. 查看镜像
    docker images
    
    • 输出
    # REPOSITORY 仓库
    # TAG 标签
    # IMAGE ID 镜像ID
    # CREATED 创建时间
    # SIZE 大小
    REPOSITORY          TAG                   IMAGE ID            CREATED             SIZE
    hello-world         latest                bf756fb1ae65        6 months ago        13.3kB
    
    1. 只显示镜像ID
    doccker images -q
    

    拉取镜像: docker pull

    拉取Docker镜像到本地。

    • 语法
    docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    
    • 示例
    1. 拉取nginx镜像
    docker pull nginx
    
    1. 拉取指定版本nginx镜像
    docker pull nginx:1.18.0
    

    Docker默认从DockerHub拉取镜像,镜像具体版本推荐到DockerHub查看。点击跳转DockerHub

    删除镜像:docker rmi

    删除Docker镜像。

    • 语法
    docker rmi [OPTIONS] IMAGE [IMAGE...]
    
    • 示例
    # 删除hello-world镜像
    docker rmi hello-world
    
    # 骚操作,删除所有镜像
    docker rmi $(docker images -q)
    

    构建镜像:docker build

    通过Dockerfile构建镜像。

    • 语法
    docker build [OPTIONS] PATH | URL | -
    
    • 常用参数
    参数 示例 说明
    -t -t mytomcat:latest 指定构建的镜像名称和版本
    -f -f Dockerfile_MyTomcat 指定Dockerfile文件,默认为Dockerfile
    . . 指定上下文
    • 示例
    1. 编写Dockerfile
    # 编写Dockerfile
    FROM centos
    RUN echo "Hello World!!" > hello_world.txt
    
    1. 根据Dockerfile构建镜像
    # 注意后面的“.”
    docker build -t mytomcat .
    # 或
    docker build -f Dockerfile -t mytomcat:latest .
    # 或
    docker build -f Dockerfile -t mytomcat .
    

    容器:Containers

    使用容器ID时,可以只使用ID前几位,只要能标识唯一性就可以。

    例如:容器ID为fac240c44f79,使用时,可以使用fa标识当前容器。以启动为例:docker start fa

    查看容器:docker ps

    查看容器信息。

    • 语法
    docker ps [OPTIONS]
    
    • 示例
    # 查看所有运行的容器
    docker ps
    
    # 查看所有容器
    docker ps -a
    
    # 查看所有容器的ID
    docker ps -a -q
    # 或
    docker ps -aq
    

    查看元数据:docker inspect

    查看容器/镜像的元数据信息。

    • 语法
    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    
    • 示例
    # 查看nginx元数据
    docker inspect nginx
    

    运行容器:docker run

    以镜像为模板,运行容器。

    • 语法
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
    • 常用参数
    参数 示例 说明
    -d 后台运行
    -name -name nginx 给容器命名
    -p -p 80:80 端口映射。宿主机端口:docker端口
    -P 宿主机随机端口映射
    -it -it nginx /bin/bash 交互模式启动。

    -it 交互模式启动,必须指定和谁交互。比如上面的/bin/bash参数,就表示和bash交互。

    常用:sh、bash。

    • 示例
    # 后台启动nginx
    docker run -d -p 80:80 nginx
    
    # 后台启动nginx 并命名
    docker run -d -name nginx_test -p 80:80 nginx
    
    # 交互模式启动nginx
    docker run -it -p 80:80 nginx /bin/bash
    
    # 交互模式启动nginx并命名
    docker run -it -name nginx_test -p 80:80 nginx /bin/bash
    

    这里有个坑

    Docker 使用交互模式启动,会直接进入容器内部,当使用exit退出时,容器也会自动停止。

    交互模式启动容器,退出不停止方法:ctrl + p + q

    启动容器:docker start

    启动容器。

    • 语法
    docker start [OPTIONS] CONTAINER [CONTAINER...]
    
    • 示例
    # 启动nginx。可以通过容器ID或容器名启动
    docker start nginx
    

    docker rundocker start 的区别:

    docker run:以镜像为模板启动,启动时需要传递参数。比如端口映射等。

    docker start:以容器为模板启动,启动时默认使用docker run的参数。

    大白话:

    docker run启动的时候要传参数,只在第一次启动时使用。

    docker start直接用docker run的参数,不用单独再传参数了。

    重启容器:docker restart

    重启指定容器。

    • 语法
    docker restart [OPTIONS] CONTAINER [CONTAINER...]
    
    • 示例
    # 重启nginx容器
    docker restart nginx
    

    停止容器

    停止指定容器。

    docker stop(推荐)
    • 语法
    docker stop [OPTIONS] CONTAINER [CONTAINER...]
    
    • 示例
    # 停止nginx。可以通过容器ID或容器名停止
    docker stop nginx
    
    # 骚操作,停止所有正在运行的容器
    docker stop $(docker ps -q)
    
    docker kill
    • docker killdocker stop类似,docker kill推荐在stop停止不了的时候使用。

    重命名:docker rename

    重命名容器。

    • 语法
    docker rename CONTAINER NEW_NAME
    
    • 示例
    # 将nginx_test重命名为nginx
    docker rename nginx_test nginx
    

    进入容器

    进入容器内部。

    docker exec(推荐)
    • 语法
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    
    • 示例
    # 以交互模式进入nginx容器内部
    docker exec -it nginx /bin/bash
    
    # 查看容器内部结构
    whereis -l
    
    docker attach
    • 语法
    docker attach [OPTIONS] CONTAINER
    
    • 示例
    docker attach nginx
    

    docker execdocker attach对比

    docker exec:以新会话方式进入容器,使用exit退出时,不会停止容器。

    docker attach:进入容器,并保持原有会话,使用exit退出时,会停止容器。

    查看日志:docker logs

    查看容器的日志。

    • 语法
    docker logs [OPTIONS] CONTAINER
    
    • 示例
    # 查看最新10条nginx日志
    docker logs --tail 10 nginx
    

    查看进程:docker top

    查看容器中运行的进程信息,支持 ps 命令参数。

    • 语法
    docker top CONTAINER [ps OPTIONS]
    
    • 示例
    # 查看nginx内部进程
    docker top nginx
    

    查看资源:docker stats

    查看容器实时资源统计信息。

    • 语法
    docker stats [OPTIONS] [CONTAINER...]
    
    • 示例
    # 查看nginx实时资源占用情况
    docker stats nginx
    
    # 查看所有容器实时资源占用情况
    docker stats -a
    

    拷贝文件:docker cp

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

    • 语法
    # 容器=>主机
    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    
    # 主机=>容器
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    
    • 示例
    # 将nginx容器的配置文件拷贝到当前目录
    docker cp nginx:/etc/nginx/nginx.conf .
    
    # 将本地当前目录的配置文件拷贝到nginx容器
    docker cp ./nginx1.conf nginx:/etc/nginx/
    

    拷贝文件和Docker容器是否启动无关。

    导出容器:docker export

    导出指定容器。

    • 语法
    docker export [OPTIONS] CONTAINER
    
    • 示例
    # 导出nginx容器到当前目录
    docker exprot nginx > nginx.tar
    # 或
    docker export nginx -o nginx.tar
    

    导入容器:docker import

    导入指定容器,并在docker创建对应镜像。

    • 语法
    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
    
    • 示例
    # 从当前目录导入nginx容器
    docker import nginx.tar nginx:v1.0
    
    # 通过http导入容器
    docker import http://example.com/example.tgz example/imagere:v1.0
    

    提交容器:docker commit

    根据容器的更改创建新镜像。

    • 语法
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
    • 常用参数
    参数 说明
    -a 指定作者
    -m 提交描述
    • 示例
    # 1. 提交tomcat容器
    docker commit -a "vv_lin<vv_lin@123.com>" -m "commit message" tomcat tomcat_custom:1.0
    
    # 2. 查看提交的容器
    docker images
    

    删除容器:docker rm

    删除指定的容器。

    • 语法
    docker rm [OPTIONS] CONTAINER [CONTAINER...]
    
    • 示例
    # 删除nginx容器
    docker rm nginx
    
    # 骚操作,删除所有容器
    docker rm $(docker ps -a -q)
    # 或
    docker rm $(docker ps -aq)
    

    相关文章

      网友评论

          本文标题:03_Docker基础命令

          本文链接:https://www.haomeiwen.com/subject/oipwrltx.html