美文网首页
Docker 3:Docker常用命令

Docker 3:Docker常用命令

作者: _百草_ | 来源:发表于2022-03-03 17:54 被阅读0次

    一、容器Docker

    1. docker version

    docker version 查看docker 版本

    docker version
    注:window使用docker时,需要运行dokcer Desktop;否则未报错:error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified.

    2. docker info

    查看docker 信息


    docker info

    二、镜像IMAGE

    2.1 docker image list & docker images

    docker image ls [OPTIONS] [REPOSITORY[:TAG]] 列出镜像
    docker image list [OPTIONS] [REPOSITORY[:TAG]]
    docker images [OPTIONS] [REPOSITORY[:TAG]] 列出本地镜像

    • 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 image IDs  # 仅展示imge id
    PS C:\Windows\system32>
    
    • docker image list/ls
    PS C:\Users\百草> docker image list
    REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
    docker101tutorial   latest    64d9b0977993   6 hours ago    28.8MB
    alpine/git          latest    c6b70534b534   3 months ago   27.4MB
    PS C:\Users\百草>
    
    • docker image list -a/--digests/--no-trunc/-q


      docker image list -a/--digests/--no-trunc/-q
    • 返回信息:
      -REPOSITORY仓库名
      -TAG标签:一个镜像可以对应多个标签
      -IMAGE ID镜像 ID:镜像的唯一标识
      -CREATED创建时间
      -SIZE所占用的空间:镜像到本地后展开状态;docker hub上显示的是压缩后的体积。docker多层存储,相同基础镜像,使用共同层,相同层保存一份。

    • docker system df 查看镜像硬盘占用空间

    PS C:\Users\百草> docker system df
    TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
    Images          2         2         56.15MB   0B (0%)  # 镜像
    Containers      3         2         2.205kB   0B (0%)  # 容器
    Local Volumes   1         1         10.41MB   0B (0%)
    Build Cache     31        0         85.49MB   85.49MB
    PS C:\Users\百草>
    

    引申:docker image list <镜像名>docker image list <镜像名>:<标签> 显示局部镜像

    2.2 docker search

    docker search [OPTIONS] TERM 搜索镜像

    • OPTIONS说明:
      --automated:只列出 automated build类型的镜像; # 当前版本不支持
      --no-trunc:显示完整的镜像描述;
      -f <过滤条件>:列出收藏数不小于指定值的镜像。
    PS C:\Windows\system32> docker search --help
    Usage:  docker search [OPTIONS] TERM
    Search the Docker Hub for images
    Options:
      -f, --filter filter   Filter output based on conditions provided
          --format string   Pretty-print search using a Go template
          --limit int       Max number of search results (default 25)
          --no-trunc        Don't truncate output
    

    如搜索python


    docker search python
    • 参数说明:
      NAME: 镜像仓库源的名称
      DESCRIPTION: 镜像的描述
      STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。
      OFFICIAL: 是否 docker 官方发布
      AUTOMATED: 自动构建。

    2.3 docker pull

    docker pull [OPTIONS] NAME[:TAG|@DIGEST] 从镜像仓库中拉取或者更新指定镜像

    PS C:\Windows\system32> docker pull --help
    
    Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    
    Pull an image or a repository from a registry  # 下载镜像
    
    Options:
      -a, --all-tags                Download all tagged images in the repository   # 拉取所有 tagged 镜像
          --disable-content-trust   Skip image verification (default true)   # 忽略镜像的校验,默认开启
          --platform string         Set platform if server is multi-platform  capable
      -q, --quiet                   Suppress verbose output
    PS C:\Windows\system32>
    
    docker pull

    2.4 docker push

    docker push [OPTIONS] NAME[:TAG] 上传本地镜像到镜像仓库

    PS C:\Windows\system32> docker push --help
    Usage:  docker push [OPTIONS] NAME[:TAG]
    Push an image or a repository to a registry
    
    Options:
      -a, --all-tags                Push all tagged images in the repository
          --disable-content-trust   Skip image signing (default true)  # 忽略镜像的校验,默认开启
      -q, --quiet                   Suppress verbose output
    

    2.5 docker bulid

    docker build [OPTIONS] PATH | URL | - 使用Dockerfile创建镜像
    Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

    Options:
          --add-host list           Add a custom host-to-IP mapping (host:ip)
          --build-arg list          Set build-time variables
          --cache-from strings      Images to consider as cache sources
          --disable-content-trust   Skip image verification (default true)
      -f, --file string             Name of the Dockerfile (Default is
                                    'PATH/Dockerfile')  # 指定要使用的镜像文件路径;默认PATH/Dockerfile
          --iidfile string          Write the image ID to the file
          --isolation string        Container isolation technology
          --label list              Set metadata for an image
          --network string          Set the networking mode for the RUN
                                    instructions during build (default "default")
          --no-cache                Do not use cache when building the image
      -o, --output stringArray      Output destination (format:
                                    type=local,dest=path)
          --platform string         Set platform if server is multi-platform
                                    capable
          --progress string         Set type of progress output (auto, plain,
                                    tty). Use plain to show container output
                                    (default "auto")
          --pull                    Always attempt to pull a newer version of
                                    the image
      -q, --quiet                   Suppress the build output and print image
                                    ID on success  # 安静模式,成功后只输出镜像ID
          --secret stringArray      Secret file to expose to the build (only
                                    if BuildKit enabled):
                                    id=mysecret,src=/local/secret
          --ssh stringArray         SSH agent socket or keys to expose to the
                                    build (only if BuildKit enabled) (format:
                                    default|<id>[=<socket>|<key>[,<key>]])
      -t, --tag list                Name and optionally a tag in the
                                    'name:tag' format  # 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
          --target string           Set the target build stage to build.
    

    2.6 docker tag

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] 创建一个tag TARGET_IMAGE[:TAG] 指向本地镜像SOURCE_IMAGE[:TAG]

    docker tag

    2.7 docker rmi

    docker rmi [OPTIONS] IMAGE [IMAGE...] # 删除本地一个或多个镜像

    Options:
      -f, --force      Force removal of the image  # 强制删除
          --no-prune   Do not delete untagged parents  # 不移除该镜像的过程镜像,默认移除
    
    docker rmi

    三、容器container

    3.1 docker run

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建一个新的容器并运行一个命令
    Options:

    -d, --detach                         Run container in background and print container ID  # 后台运行并输出容器id
     -e, --env list                       Set environment variables  #设置环境变量,如 -e username="ritchie"
     --name string                    Assign a name to the container  # 为容器指定一个名字,需要唯一
    -i, --interactive                    Keep STDIN open even if not attached  # 以交互模式运行容器,通常与 -t 同时使用;
    -t, --tty                            Allocate a pseudo-TTY  # 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    -P, --publish-all                    Publish all exposed ports to random ports  #随机端口映射,容器内部端口随机映射到主机的端口
    -p, --publish list                   Publish a container's port(s) to the host  #指定端口映射,格式为:主机(宿主)端口:容器端口;注意确定所设置的端口是否在阿里云上开端口?不然是连接不到的,只有开放端口才能正常访问
    -v, --volume list                    Bind mount a volume  # 映射容器安装目录,方便管理;如-v ~/mysql/conf:/etc/mysql/conf.d
    
    • 报错信息
    PS C:\Windows\system32> docker run -d -p 84:84 --name container004 docker101tutorial
    docker: Error response from daemon: Conflict. The container name "/container004" is already in use by container "e8c3c99a461c2801dced5a388c11a5df8ba5f1f9257664cf6804d00216d76855". You have to remove (or rename) that container to be able to reuse that name.  # 容器名重复;容器创建失败
    See 'docker run --help'.
    PS C:\Windows\system32> docker run -d -p 84:84 --name container005 docker101tutorial
    d9401085b44d7cef7bf8c973ffab2af751151dd7f59e3c2644ebdeca164292df  # 容器创建成功
    docker: Error response from daemon: driver failed programming external connectivity on endpoint container005 (429ee6cce6fdfd3095a0653fe99c20bb41e58e412e88a65bde4868e441863ea4): Bind for 0.0.0.0:84 failed: port is already allocated.  # 端口被占用;但实际容器已被创建,只不过没有启动
    PS C:\Windows\system32> docker run -d -p 86:86 --name container006 docker101tutorial
    d747d5efd37d6a709786e88cc27b60d9febf0a1fa0247f9e85be52d7f4cb5f4f
    PS C:\Windows\system32>
    

    docker run -d -i -t --name xxx
    也等同于 docker -dit --name xxx

    3.2 docker ps

    docker ps查看在运行的容器
    参数添加 -a,则展示所有容器

    PS C:\Windows\system32> docker ps
    CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                        NAMES
    d747d5efd37d   docker101tutorial          "/docker-entrypoint.…"   2 minutes ago    Up 2 minutes    80/tcp, 0.0.0.0:86->86/tcp   container006
    e8c3c99a461c   docker101tutorial          "/docker-entrypoint.…"   4 minutes ago    Up 4 minutes    80/tcp, 0.0.0.0:84->84/tcp   container004
    deb39d6e5c63   docker101tutorial:latest   "/docker-entrypoint.…"   25 minutes ago   Up 25 minutes   80/tcp                       zealous_kepler
    9e91864d7058   docker101tutorial          "/docker-entrypoint.…"   6 hours ago      Up 27 minutes   0.0.0.0:80->80/tcp           docker-tutorial
    PS C:\Windows\system32>
    
    docker ps

    输出详情介绍:

    • CONTAINER ID: 容器 ID。
    • IMAGE: 使用的镜像。
    • COMMAND: 启动容器时运行的命令。
    • CREATED: 容器的创建时间。
      -STATUS: 容器状态。
      状态有7种:
      created(已创建)、restarting(重启中)、running(运行中)、removing(迁移中)、paused(暂停)、exited(停止)、dead(死亡)
    • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
    • NAMES: 自动分配的容器名称。

    3.3 docker stop/kill/start/restart

    • docker start
    PS C:\Windows\system32> docker start --help
    
    Usage:  docker start [OPTIONS] CONTAINER [CONTAINER...]  # 容器名或容器id;容器id支持模糊查询
    
    Start one or more stopped containers  # 启动一个或多个停止的容器
    
    Options:
      -a, --attach               Attach STDOUT/STDERR and forward signals
          --detach-keys string   Override the key sequence for detaching a container
      -i, --interactive          Attach container's STDIN
    PS C:\Windows\system32>
    
    docker start
    • docker restart xxx # 重启
    • docker stop
    PS C:\Windows\system32> docker stop --help
    
    Usage:  docker stop [OPTIONS] CONTAINER [CONTAINER...]
    
    Stop one or more running containers
    
    Options:
      -t, --time int   Seconds to wait for stop before killing it (default 10)  
    # 关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
    PS C:\Windows\system32>
    
    docker stop
    • docker kill xxx # 强制关闭

    3.4 docker cp

    PS C:\Windows\system32> docker cp --help
    
    Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
            docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    
    Copy files/folders between a container and the local filesystem  # 文件与主机之间的数据拷贝
    
    Use '-' as the source to read a tar archive from stdin
    and extract it to a directory destination in a container.
    Use '-' as the destination to stream a tar archive of a
    container source to stdout.
    
    Options:
      -a, --archive       Archive mode (copy all uid/gid information)
      -L, --follow-link   Always follow symbol link in SRC_PATH
    PS C:\Windows\system32>
    

    3.5 docker clone

    3.6 docker rm

    docker rm xxx 删除一个或多个容器

    PS C:\Windows\system32> docker rm --help
    
    Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]
    
    Remove one or more containers
    
    Options:
      -f, --force     Force the removal of a running container (uses SIGKILL)  # 强制删除,通过 SIGKILL 信号删除正在运行中的容器
      -l, --link      Remove the specified link  # 移除容器间的网络链接,并非容器
      -v, --volumes   Remove anonymous volumes associated with the container  # 删除与容器关联的卷
    PS C:\Windows\system32>
    

    3.8 docker rename

    PS C:\Windows\system32> docker rename --help
    Usage:  docker rename CONTAINER NEW_NAME  # 使用容器id
    Rename a container  # 更新容器名
    
    docker rename

    四、参考

    1. Docker学习2-Docker的基本命令与使用
    2. docker常规操作——启动、停止、重启容器实例
    3. Dokcer rm命令
    4. Docker push命令
    5. Docker build命令
    6. Docker cp命令

    相关文章

      网友评论

          本文标题:Docker 3:Docker常用命令

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