• Docker常用命令


    1.pull命令

    docker pull:从公有仓库或私有仓库拉取镜像到本地宿主机

    语法:

    docker pull [OPTIONS] NAME[:TAG | @DIGEST] 
    docker pull [OPTIONS] [公有仓库|私有仓库]/NAME:[TAG]
    

    OPTIONS说明:

    参数 说明
    -a 摘取所有tagged镜像
    --disable-content-trust 忽略镜像的校验,默认开启
    #从Docker Hub下载nginx最新版镜像
    [root@localhost ~]# docker pull nginx:latest       #如nginx前没有加上仓库的名字,默认从Docker Hub拉取
    

    1586871669018

    2.images命令

    docker images:查看宿主机上的所有镜像

    语法:

    docker images [options] [REPOSITORY[:TAG]]
    

    OPTIONS说明:

    参数 说明
    -a 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
    --digests 显示镜像的摘要信息
    -f 显示满足条件的镜像
    --format 指定返回值的模板文件
    --no-trunc 显示完整的镜像信息
    -q 只显示镜像ID

    实例:

    #查看本地镜像列表,列出本地的所有镜像
    [root@localhost ~]# docker images
    
    #列出本地镜像中REPOSITORY为nginx的镜像列表
    [root@localhost ~]# docker images nginx
    

    1586872177534

    3.rmi命令

    docker rmi:删除本地一个或多个镜像

    语法:

    docker rmi [OPTIONS] IMAGE [IMAGE...]
    

    OPTIONS说明:

    参数 说明
    -f 强制删除
    --no-prune 不移除该镜像的过程镜像,默认移除

    实体:

    #强制删除本地镜像redis
    [root@localhost ~]# docker rmi redis
    

    1586872404631

    4.run命令

    docker run:创建一个新的容器并运行

    语法:

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    OPTIONS说明:

    参数 说明
    -a stdin 指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项
    -d 后台运行容器,并返回容器ID
    -i
    -t
    以交互模式运行容器,通常与-t同时使用
    为容器重新分配一个伪输入终端,通常与-i同时使用
    -p
    -P
    端口映射,格式为:主机(宿主机)指定端口:容器端口
    端口映射,格式为:主机(宿主机)随机端口:容器端口(容器设定的)
    -v 将宿主机的本地目录映射容器的指定目录
    --name="****" 为容器指定一个名称
    --dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主的一致
    --dns-search example.com 指定容器DNS搜索域名,默认和宿主一致
    -h "mars" 指定容器的hostname
    -e username="***" 设置环境变量
    --env-file=[] 从指定文件读入环境变量
    --cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定CPU运行
    -m 设置容器使用内存最大值
    --net="bridge" 指定容器的网络连接类型,支持bridge/host/none/container:<name|id>四种类型
    --link=[] 添加链接到另一个容器
    --expost=[] 开放一个端口或一组端口

    实例:

    #使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命令为maplenginx
    [root@localhost ~]# docker run --name maplenginx -d nginx:latest
    
    #使用镜像nginx:latet以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
    [root@localhost ~]# docker run --name m1nginx -P -d nginx:latest
    
    #使用镜像nginx:latest,以后台模式启动一个容器,将容器的80端口映射到主机的2888端口,主机的目录/data映射到容器的/data
    [root@localhost ~]# docker run --name m2nginx -p 2888:80 -v /data:/data -d nginx:latest
    
    #绑定容器的8080端口,并将其映射到本地主机127.0.0.1的3888端口上
    [root@localhosta ~]# docker run --name m3nginx -p 127.0.0.1:3888:8080 -d ubuntu
    
    #使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
    [root@localhost ~]# docker run --name m4nginx /bin/bash
    

    1586875065531

    5.ps命令

    docker ps :列出正在运行的容器

    语法:

    docker ps [OPTIONS]
    

    OPTIONS说明:

    参数 说明
    -a 显示所有的容器,包括未运行的
    -f 根据条件过滤显示的内容
    --format 指定返回值的模板文件
    -l 显示最近创建的容器
    -n 列出最近创建的n个容器
    --no-trunc 不截断输出
    -q 静默模式,只显示容器编号
    -s 显示总的文件大小

    实例:

    #列出所有在宿主机中运行的容器
    [root@localhost ~]# docker ps
    
    #列出最新创建的2个容器信息:
    [root@localhost ~]# docker ps -n 2
    
    #列出所有创建的容器的ID
    [root@localhost ~]# docker ps -a -q
    

    1586876679344

    标题含义:

    名称 说明
    CONTAINER ID 容器的唯一ID
    IMAGE 创建容器时使用的镜像
    COMMAND 容器最后运行的命令
    CREATED 创建容器的时间
    STATUS 容器状态
    PORTS 对外开放的端口
    NAMES 容器名。可以和容器ID一样唯一标识容器,同一台宿主机上不允许有同名容器存在,否则会冲突

    6.start/stop/restart命令

    docker start|stop|restart:启动容器,停止一个正在运行的容器,重新启动正在运行的容器

    语法:

    docker start|stop|restart [OPTIONS] CONTAINER [CONTAINER...]
    

    docker start:启动一个或多个已经被停止的容器

    docker stop:停止一个或多个正在运行中的容器

    docker restart:重启一个或多个正在运行中的容器

    实例:

    #停止运行中的容器m1nginx
    [root@localhost ~]# docker stop m1nginx
    [root@localhost ~]# docker ps -a | grep m1nginx
    
    #启动已被停止的容器m1nginx
    [root@localhost ~]# docker start m1nginx
    [root@localhost ~]# docker ps -a | grep m1nginx
    
    #重启容器m1nginx
    [root@localhost ~]# docker restart m1nginx
    [root@localhost ~]# docker ps -a | grep m1nginx
    

    1586877476311

    7.search命令

    docker search:从Docker Hub查找镜像

    语法:

    docker search [OPTIONS] TERM
    
    参数 说明
    --automated 只列出automated build类型的镜像
    --no-trunc 显示完整的镜像描述
    -s 列出收藏不小于指定值的镜像

    实例:

    #从Docker Hub仓库中查找所有镜像名包含nginx,并且收藏数大于100的镜像
    [root@localhost ~]# docker search  -s 100 nginx
    

    1586878277109

    8.top命令

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

    语法:

    docker top [OPTIONS] CONTAINER [ps OPTIONS]
    

    容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以通过使用docker top来实现查看container中正在运行的进程

    实例:

    #查看容器m1nginx的进程信息
    [root@localhost ~]# docker top m1nginx
    

    1586878680534

    9.inspect命令

    docker inspect:获取容器或镜像的元数据信息

    语法:

    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    

    OPTIONS说明:

    参数 说明
    -f 指定返回值的模板文件
    -s 显示总的文件大小
    --type 为指定类型返回JSON

    实例:

    #获取镜像nginx的元数据信息
    [root@localhost ~]# docker inspect nginx:latest
    [
        {
            "Id": "sha256:ed21b7a8aee9cc677df6d7f38a641fa0e3c05f65592c592c9f28c42b3dd89291",
            "RepoTags": [
                "nginx:latest"
            ],
            "RepoDigests": [
                "nginx@sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596"
            ],
            "Parent": "",
            "Comment": "",
            "Created": "2020-03-31T03:19:30.487069362Z",
            "Container": "5c86b143cf5caec0aed5c331922c243f00600152ec0e9ecbe8531771562e72b8",
            "ContainerConfig": {
                "Hostname": "5c86b143cf5c",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "ExposedPorts": {
                    "80/tcp": {}
                },
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                    "NGINX_VERSION=1.17.9",
                    "NJS_VERSION=0.3.9",
                    "PKG_RELEASE=1~buster"
                ],
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) ",
                    "CMD ["nginx" "-g" "daemon off;"]"
                ],
                "ArgsEscaped": true,
                "Image": "sha256:9be1fc3b00d81a66f4de11f5f5bf176e0748434be056cf3152386cc917307e7f",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
                },
                "StopSignal": "SIGTERM"
            },
            "DockerVersion": "18.09.7",
            "Author": "",
            "Config": {
                "Hostname": "",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "ExposedPorts": {
                    "80/tcp": {}
                },
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                    "NGINX_VERSION=1.17.9",
                    "NJS_VERSION=0.3.9",
                    "PKG_RELEASE=1~buster"
                ],
                "Cmd": [
                    "nginx",
                    "-g",
                    "daemon off;"
                ],
                "ArgsEscaped": true,
                "Image": "sha256:9be1fc3b00d81a66f4de11f5f5bf176e0748434be056cf3152386cc917307e7f",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {
                    "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
                },
                "StopSignal": "SIGTERM"
            },
            "Architecture": "amd64",
            "Os": "linux",
            "Size": 126769107,
            "VirtualSize": 126769107,
            "GraphDriver": {
                "Data": {
                    "LowerDir": "/var/lib/docker/overlay2/3032185da3147f04ada2fd6c2fa6fcba05d1cf0937f22f9da0a86a8ea789e5c2/diff:/var/lib/docker/overlay2/85f73e89a9d2769c608f228f8d7c8a7ed4df2d91b69482d408bccef10248ac2e/diff",
                    "MergedDir": "/var/lib/docker/overlay2/c6e1e55d501a7f0306194590f3ba9ed2ba46a8dc3be71579913eb2dc842c1678/merged",
                    "UpperDir": "/var/lib/docker/overlay2/c6e1e55d501a7f0306194590f3ba9ed2ba46a8dc3be71579913eb2dc842c1678/diff",
                    "WorkDir": "/var/lib/docker/overlay2/c6e1e55d501a7f0306194590f3ba9ed2ba46a8dc3be71579913eb2dc842c1678/work"
                },
                "Name": "overlay2"
            },
            "RootFS": {
                "Type": "layers",
                "Layers": [
                    "sha256:c3a984abe8a88059915bb6c7a1d249fd1ccc16d931334ac8816540b0eb686b45",
                    "sha256:99134ec7f247e5a211c7205fec587bf72a6d4aac339b21858b892e9c04f78920",
                    "sha256:d37eecb5b7691ec21bd19989e37f8bb4d20b340a775591d0f3db5897d606b0e4"
                ]
            },
            "Metadata": {
                "LastTagTime": "0001-01-01T00:00:00Z"
            }
        }
    ]
    

    10.exec命令

    docker exec:进入运行的容器中执行命令

    语法:

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    

    OPTIONS说明:

    参数 说明
    -d 分离模式,在后台运行
    -i 即使没有附加也保持STDIN打开
    -t 分配一个伪终端

    实例:

    #以一个交互模式的终端方式进入到容器m2nginx中
    [root@localhost ~]# docker exec -it m2nginx /bin/bash
    

    1586916561237

    11.login命令

    docker login:用于登陆到一个Docker镜像仓库,如果未指定镜像仓库的地址,则默认使用官方仓库docker.hub

    docker logout:用于登出一个Docker镜像仓库,如果未指定镜像仓库的地址,则默认登出官方仓库docker.hub

    语法:

    docker login  [OPTIONS] [SERVER]
    docker logout  [OPTIONS] [SERVER]
    

    OPTIONS说明:

    参数 说明
    -u 登录的用户名
    -p 登录的密码

    实例:

    #登录到Docker hub镜像仓库
    [root@localhost ~]# docker login -u <用户名> -p <密码>
    
    #登录到私人仓库或其它第三方镜像仓库
    [root@localhost ~]# docker login harbor.od.com -u <用户名> -p <密码>
    
    #登出Docker Hub镜像仓库
    [root@localhost ~]# docker logout
    
    #登出私人仓库或第三方镜像仓库
    [root@localhost ~]# docker logout harbor.od.com
    

    12.push命令

    docker push:将本地的镜像上传到镜像仓库,要先登录到镜像仓库

    语法:

    docker push [OPTIONS] NAME[:TAG]
    

    OPTIONS说明:

    参数 说明
    --disable-content-trust 忽略镜像的检验,默认开启

    实例:

    #将本地镜像m2nginx上传到私人仓库harbor.od.com上
    [root@localhost ~]# docker tag m1nginx harbor.od.com/public/m1nginx:v1
    [root@localhost ~]# docker login harbor -u <用户名> -p <密码>
    [root@localhost ~]# docker push harbor.od.com/public/m1nginx:v1
    
    温馨提示:不管是上传到官方镜像仓库或私人镜像仓库,都需要先对本地的镜像进行打标签(标签是如何请参照相对应的镜像仓库的信息来修改)
    

    13.build命令

    docker build:命令用于使用Dockerfile文件创建镜像

    语法:

    docker build [OPTIONS] PATH|URL|-
    

    OPTIONS说明:

    参数 说明
    --build-arg=[] 设置镜像创建时的变量
    --cpu-shares 设置CPU使用权重
    --cpu-period 限制CPU CFS周期
    --cpu-quota 限制CPU CFS配额
    --cpuset-mems
    --disable-content-trust
    -f
    --force-rm
    --isolation
    --cpuset-mems 指定使用的内存id
    --disable-content-trust 忽略校验,默认开启
    -f 指定要使用的Dockerfile路径
    --force-rm 设置镜像过程中删除中间容器
    --isolation 使用容器隔离技术
    --label=[] 设置镜像使用的元数据
    -m 设置内存最大值
    --memory-swap 设置swap的最大值为内存+swap,“-1”表示不限swap
    --network 默认default,在构建期间设置RUN指令的网络模式
    --quiet,-q 安静模式,成功后只输出镜像ID
    --tag,-t 镜像的名字及标签,通过name:tag或name格式,可以在一次构建中为一个镜像设置多个标签。
    --shm-size 设置/dev/shm的大小,默认值是64M

    实例:

    #使用URL github.com/maple/docker-firefox的Dockerfile创建镜像
    [root@localhost ~]# docker build github.com/maple/docker-firefox
    
    #使用Dockerfile文件创建镜像
    #[root@localhost ~]# docker build -f /path/to/a/Dockerfile .
    
  • 相关阅读:
    python day6
    python day5
    python基础晋级篇
    python基础篇
    初识Python
    if语句
    A22. openstack架构实战-openstack的api
    A21. openstack架构实战-配置三层网络vxlan
    A20. openstack架构实战-虚拟机创建的流程
    A19. openstack架构实战-云主机的冷迁移
  • 原文地址:https://www.cnblogs.com/Heroge/p/12704018.html
Copyright © 2020-2023  润新知