• 【Docker】常用命令总结


    Docker是基于Go语言实现的云开源项目。Docker的主要目标是**“Build,Ship and Run Any App,Anywhere”**。也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

    在这里插入图片描述


    一、帮助启动类命令

    • 启动docker: systemctl start docker

    • 停止docker: systemctl stop docker

    • 重启docker: systemctl restart docker

    • 查看docker状态: systemctl status docker

    • 开机启动: systemctl enable docker

    • 查看docker 概要信息: docker info

    • 查看docker 总体命令帮助文档: docker --help

    • 查看docker 具体命令帮助文档: docker 具体命令 --help

    二、镜像命令

    2.1 所有镜像

    1)images

    列出本地主机上的镜像

    docker images [OPTIONS] [REPOSITORY[:TAG]]
    Options:
      -a, --all             显示所有本地镜像(默认隐藏中间图像)
      -q, --quiet           只保留id字段
    
      -f, --filter filter   根据提供的条件过滤输出
          --format string   使用go模板打印
          --no-trunc        不要截断输出
          --digests         显示摘要字段
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [root@VM-8-11-centos ~]# docker images -a
    REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
    hello-world   latest    feb5d9fea6a5   14 months ago   13.3kB
    [root@VM-8-11-centos ~]# docker images -q
    feb5d9fea6a5
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2)search

    查询远程镜像

    docker search [OPTIONS] TERM
    Options:
          --limit int       限制查询结果的大小
          
      -f, --filter filter   根据提供的条件过滤输出
          --format string   使用go模板打印
          --no-trunc        不要截断输出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    [root@VM-8-11-centos ~]# docker search --limit 5 redis
    NAME                     DESCRIPTION(描述)                                STARS     OFFICIAL(官方)    AUTOMATED(自动化的)
    redis                    Redis is an open source key-value store that…   11598     [OK]       
    redislabs/redisinsight   RedisInsight - The GUI for Redis                72                   
    redislabs/redisearch     Redis With the RedisSearch module pre-loaded…   56                   
    redislabs/redis          Clustered in-memory database engine compatib…   35                   
    redislabs/rebloom        A probablistic datatypes module for Redis       21                   		[OK]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3)pull

    下载镜像。默认拉取最新版

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    Options:
      -q, --quiet                   抑制详细输出
    
      -a, --all-tags                下载所有标记的图像
          --disable-content-trust   跳过镜像验证(默认为真)
          --platform string         设置平台(如果服务器支持多平台)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    [root@VM-8-11-centos ~]# docker pull ubuntu
    Using default tag: latest #默认拉取最新版
    latest: Pulling from library/ubuntu
    7b1a6ab2e44d: Pull complete 
    Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
    Status: Downloaded newer image for ubuntu:latest
    docker.io/library/ubuntu:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4)system df

    查看镜像/容器/数据卷所占的空间

    docker system df [OPTIONS]
    Options:
      -v, --verbose         显示详细信息
      
          --format string   使用go模板打印
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@VM-8-11-centos ~]# docker system df
    TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE(可收回的)
    Images          2         1         72.79MB   72.78MB (99%)
    Containers      2         0         0B        0B
    Local Volumes   0         0         0B        0B
    Build Cache     0         0         0B        0B
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5)rmi

    删除本地镜像

    • 注意:如果不是最新版镜像需要带标签

    • 删除本地全部镜像:docker rmi $(docker images -q)

    docker rmi [OPTIONS] IMAGE [IMAGE...]
    Options:
      -f, --force      强制移除
      
          --no-prune   不要删除未标记的父母
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@VM-8-11-centos ~]# docker rmi mysql:5.7
    Untagged: mysql:5.7
    Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
    Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
    Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.2 指定镜像

    docker image COMMAND,对指定镜像进行相关操作

    docker image COMMAND
    Commands:
      build       通过Dockerfile文件构建镜像
      history     显示镜像的历史
      import      从tarball导入内容以创建文件系统镜像
      inspect     在一个或多个图像上显示详细信息
      load        从tar存档或STDIN加载镜像
      ls          镜像列表
      prune       移除未使用的镜像
      pull        从注册表中拉取镜像或存储库
      push        将镜像或存储库推送到注册表
      rm          移除一个或多个镜像
      save        将一个或多个镜像保存到tar归档文件中(默认情况下会传输到STDOUT)
      tag         创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    1)ls

    显示镜像列表。

    docker image ls 作用与 docker images 类似

    docker image ls [OPTIONS] [REPOSITORY[:TAG]]
    Options:
      -a, --all             显示所有镜像(默认隐藏中间镜像)
          --digests         显示摘要
          
      -f, --filter filter   根据提供的条件过滤输出。#过滤出虚悬镜像:dangling=true
          --format string   使用Go模板格式化并打印
          --no-trunc        不截断输出
      -q, --quiet           仅显示图像id
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2)prune

    删除未使用的镜像

    docker image prune [OPTIONS]
    Options:
      -a, --all             移除所有未使用的图像,而不仅仅是虚悬镜像
      --filter filter   	提供过滤值 (e.g. 'until=')
      -f, --force           不提示确认
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、容器命令

    3.1 启动

    1)💡run

    新建并启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    Options:
      -d, --detach                         在后台运行
      -i, --interactive                    保持标准的输入连接
      -t, --tty                            分配一个伪终端
          --network network                设置容器网络模式
      -p, --publish list                   小写p,指定端口映射
      -P, --publish-all                    大写P,随机端口映射
      -v, --volume list                    绑定数据卷。rw:容器实例读写权限、ro:容器实例只读权限
          --privileged                     授予此容器扩展权限
          --name string                    指定名称
    
      -e, --env list                       设置环境变量(mysql密码)
          --restart string                 是否随docker的重启而重启(默认"no")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    [root@VM-8-11-centos ~]# docker run -it --name ubuntu01 ubuntu
    root@be76900a888a:/# 
    
    [root@VM-8-11-centos ~]# docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry:rw --privileged=true registry
    36a0e2fb143fd63246ec7d3478cc2691b6ccafee114574100dfef14a3857d2b1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    交互式(-it)和守护式(-d)

    很重要的要说明的一点: Docker容器后台运行,部分容器 需要有一个前台进程与之交互

    容器运行时如果没有那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

    所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断,O(∩_∩)O哈哈~

    2)ps

    列出当前所有正在运行的容器

    docker ps [OPTIONS]
    Options:
      -l, --latest          显示最新创建的容器(包括所有状态)
      -n, --last int        显示n个最近创建的容器(包括所有状态)
      -a, --all             显示所有容器
      -q, --quiet           只保留id字段
      
      -s, --size            显示总文件大小
      -f, --filter filter   根据提供的条件过滤输出
          --format string   使用go模板打印
          --no-trunc        不要截断输出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [root@VM-8-11-centos ~]# docker ps -a
    CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                        PORTS      NAMES
    be76900a888a   ubuntu        "bash"                   6 minutes ago    Up 6 minutes                             ubuntu01
    c9316fabbee6   redis:6.0.8   "docker-entrypoint.s…"   8 minutes ago    Up 8 minutes                  6379/tcp   nice_clarke
    94b38aee90c2   ubuntu        "bash"                   10 minutes ago   Exited (0) 10 minutes ago                wizardly_kare
    0138ad656012   ubuntu        "bash"                   10 minutes ago   Exited (0) 10 minutes ago                amazing_hertz
    f3e6e504362b   hello-world   "/hello"                 5 hours ago      Exited (0) 5 hours ago                   competent_wu
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3)退出容器

    • exit:退出,容器停止
    • ctrl+p+q:退出,容器不停止

    4)start

    启动已停止运行的容器

    • 对运行中的容器无影响,可以使用 -i 参数重新进入容器
    docker start [OPTIONS] CONTAINER [CONTAINER...]
    Options:
      -i, --interactive          附加标准的输入连接
      -a, --attach               附加STDOUT/STDERR和转发信号
      
          --detach-keys string   覆盖分离容器的键序列
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@VM-8-11-centos ~]# docker start -i 62ceff1dabae
    root@62ceff1dabae:/# 
    
    • 1
    • 2

    5)restart

    重启(运行中/已停止)容器

    docker restart [OPTIONS] CONTAINER [CONTAINER...]
    Options:
      -t, --time int   超时时间
    
    • 1
    • 2
    • 3
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    [root@VM-8-11-centos ~]# docker restart -t 30 c4f34b85a8d7
    c4f34b85a8d7
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS        PORTS      NAMES
    c4f34b85a8d7   redis     "docker-entrypoint.s…"   16 minutes ago   Up 1 second   6379/tcp   festive_hodgkin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.2 停止删除

    1)stop

    停止容器

    docker stop [OPTIONS] CONTAINER [CONTAINER...]
    Options:
      -t, --time int   超时时间
    
    • 1
    • 2
    • 3
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS      NAMES
    c4f34b85a8d7   redis     "docker-entrypoint.s…"   15 minutes ago   Up 2 seconds   6379/tcp   festive_hodgkin
    [root@VM-8-11-centos ~]# docker stop -t 30 c4f34b85a8d7
    c4f34b85a8d7
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2)kill

    强制停止容器

    docker kill [OPTIONS] CONTAINER [CONTAINER...]
    Options:
      -s, --signal string   发送到容器的信号(默认为“KILL”)
    
    • 1
    • 2
    • 3
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS      NAMES
    c4f34b85a8d7   redis     "docker-entrypoint.s…"   13 minutes ago   Up 3 seconds   6379/tcp   festive_hodgkin
    [root@VM-8-11-centos ~]# docker kill c4f34b85a8d7
    c4f34b85a8d7
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3)rm

    删除已停止的容器

    • 删除所有已停止容器:docker rm $(docker ps -aq)、docker ps -aq | xargs docker rm
    docker rm [OPTIONS] CONTAINER [CONTAINER...]
    Options:
      -f, --force     强制删除运行中的容器
    
      -l, --link      移除指定的链接
      -v, --volumes   删除与容器关联的匿名卷
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@VM-8-11-centos ~]# docker ps -a
    CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                            PORTS     NAMES
    be76900a888a   ubuntu        "bash"                   38 minutes ago   Exited (127) About a minute ago             ubuntu01
    62ceff1dabae   ubuntu        "bash"                   39 minutes ago   Exited (0) 20 minutes ago                   ubuntu02
    [root@VM-8-11-centos ~]# docker rm $(docker ps -aq)
    be76900a888a
    62ceff1dabae
    [root@VM-8-11-centos ~]# docker ps -a
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.3 进入

    一般用-d后台启动的程序,再用exec进入对应容器实例

    1)exec

    进入正在运行的容器并 重新启动命令行窗口 进行交互(推荐使用)

    • -it:在此命令中一起使用才有意义
    • 注意:使用 exit 退出时,不会导致容器停止
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    Options:
      -i, --interactive          即使没有连接,也保持STDIN打开
      -t, --tty                  分配一个伪TTY
    
      -d, --detach               分离模式:在后台运行命令
      -u, --user string          用户名或UID(格式:<名称|uid>[:<|gid>])
          --detach-keys string   覆盖分离容器的键序列
      -e, --env list             设置环境变量
          --env-file list        读入环境变量文件
          --privileged           授予命令扩展权限
      -w, --workdir string       容器内的工作目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    [root@VM-8-11-centos lib]# docker ps 
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
    bbb50338eac5   ubuntu    "bash"                   23 minutes ago   Up 23 minutes             distracted_wu
    [root@VM-8-11-centos lib]# docker exec -it bbb50338eac5 /bin/bash
    root@bbb50338eac5:/# exit
    exit
    [root@VM-8-11-centos lib]# docker ps 
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
    bbb50338eac5   ubuntu    "bash"                   25 minutes ago   Up 25 minutes             distracted_wu
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2)attach

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

    • 注意:使用 exit 退出时,导致容器停止
    docker attach [OPTIONS] CONTAINER
    Options:
    
          --detach-keys string   覆盖分离容器的键序列
          --no-stdin             不要附加标准输入
          --sig-proxy            将所有收到的信号代理到进程(默认为真)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@VM-8-11-centos lib]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED             STATUS             PORTS     NAMES
    bbb50338eac5   ubuntu    "bash"                   39 minutes ago      Up 39 minutes                distracted_wu
    [root@VM-8-11-centos lib]# docker attach bbb50338eac5
    root@bbb50338eac5:/# exit
    exit
    [root@VM-8-11-centos lib]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED             STATUS             PORTS     NAMES
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.3.3.4 查看

    1)logs

    查看容器日志

    docker logs [OPTIONS] CONTAINER
    Options:
      -n, --tail string    显示后几行
      -f, --follow         跟踪日志输出
          --since string   显示自时间戳(例如2013-01-02T13:23:37Z)或相对时间(例如42分钟42秒)以来的日志
          --until string   显示时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(例如42分钟42米)之前的日志
      
          --details        显示提供给日志的额外详细信息
      -t, --timestamps     显示时间戳
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
    74b7ee3d0fb0   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   80/tcp    pensive_noyce
    [root@VM-8-11-centos ~]# docker logs 74b7ee3d0fb0
    /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
    /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
    /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2)top

    查看容器内运行的进程

    docker top CONTAINER [ps OPTIONS]
    
    • 1

    在这里插入图片描述

    3)inspect

    查看容器详细信息

    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    Options:
      -f, --format string   使用go模板打印
      -s, --size            如果类型为容器,则显示总文件大小
          --type string     返回指定类型的JSON
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@VM-8-11-centos ~]# docker inspect 74b7ee3d0fb0
    [
        {
            "Id": "74b7ee3d0fb077b70f557da7474274708bbbbad2933d3b0ba7662f6f6669ed9b",
            "Created": "2022-11-25T12:06:02.570477034Z",
            "Path": "/docker-entrypoint.sh",
            "Args": ...,
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                ...
                "StartedAt": "2022-11-25T12:06:02.791257558Z",
                "FinishedAt": "0001-01-01T00:00:00Z"
            },
            "Image": "sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85",
            "ResolvConfPath": "/var/lib/docker/containers/74b7ee3d0.../resolv.conf",
            "HostnamePath": "/var/lib/docker/containers/74b7ee3d0fb077b70f557da7.../hostname",
            "HostsPath": "/var/lib/docker/containers/74b7ee3d0fb077b70f.../hosts",
            "LogPath": "/var/lib/docker/containers/74b7ee3d0fb077b70f557da.../74b7ee3d0fb077b70f5...-json.log",
            ...
            "HostConfig": {
                ...
                "NetworkMode": "default",
                ...
                "Dns": [],
                "DnsOptions": [],
                "DnsSearch": [],
                ...
            "GraphDriver": {
                "Data": {
                    "LowerDir": ...,
                    "MergedDir": ...,
                    "UpperDir":...,
                    "WorkDir": ...
                },
                "Name": "overlay2"
            },
            "Mounts": [],
            "Config": {
                "Hostname": "74b7ee3d0fb0",
                "Domainname": "",
                "User": "",
                ...
            },
            "NetworkSettings": {
                "Bridge": "",
                "SandboxID": "7d00e92b4bbd5c1595f2ed52f1b5159bb23d2320617f4960bee2da7c38cf2693",
                ...
                "Networks": {
                    "bridge": {
                        ...
                        "NetworkID": "4775de594dcde3d4c1a966ee1605862a89cae99eb72347db3e64608d9d6b3b47",
                        "EndpointID": "03c4edb53ff62f07c6aeca5c915b0f713fb4ad2759953cce2dfcdfda7e0adb30",
                        "Gateway": "172.17.0.1",
                        "IPAddress": "172.17.0.2",
                        ...
                    }
                }
            }
        }
    ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    4)cp

    从容器内拷贝文件到主机上

    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-:使用'-'作为从stdin中读取tar归档文件的源并将其提取到容器中的目录目的地。
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH:使用“-”作为目的地,以流式传输标准输出的容器源。
    Options:
      -a, --archive       存档模式(复制所有uid/gid信息)
      -L, --follow-link   总是跟随SRC_PATH中的符号链接
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@VM-8-11-centos lib]# docker exec -it b0a1301d9ae6 /bin/bash
    root@b0a1301d9ae6:/# cd /test
    root@b0a1301d9ae6:/test# ll
    total 8
    ...
    -rw-r--r-- 1 root root    0 Nov 25 13:23 abc.txt
    [root@VM-8-11-centos lib]# docker cp b0a1301d9ae6:/test/abc.txt /
    [root@VM-8-11-centos /]# ll
    total 72
    -rw-r--r--    1 root root     0 Nov 25 21:23 abc.txt
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    四、维护命令

    1)export

    导出容器 作为一个tar归档文件。归档文件可以导入为镜像文件

    docker export [OPTIONS] CONTAINER > fileName
    Options:
      -o, --output string   写入文件,而不是标准输出
    
    • 1
    • 2
    • 3
    [root@VM-8-11-centos /]# docker export b0a1301d9ae6 >abcd.tar
    [root@VM-8-11-centos /]# ll
    total 73472
    -rw-r--r--    1 root root 75159552 Nov 25 21:39 abcd.tar
    
    • 1
    • 2
    • 3
    • 4

    2)import

    从tar包中的内容创建一个新的文件系统再 导入为镜像

    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
    Options:
      -c, --change list       对创建的镜像应用Dockerfile指令
      -m, --message string    为导入的镜像设置提交消息
          --platform string   设置平台,如果服务器支持多平台
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@VM-8-11-centos /]# ll
    total 73472
    -rw-r--r--    1 root root 75159552 Nov 25 21:39 abcd.tar
    [root@VM-8-11-centos /]# docker import abcd.tar abcd/ubuntu:2.1
    sha256:86fc53decf9085355f2ba11950a0f2b7d93e3d51fbcc709ead3b19bc8bbad705
    [root@VM-8-11-centos /]# docker images
    REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
    abcd/ubuntu   2.1       86fc53decf90   6 seconds ago   72.8MB
    ...
    [root@VM-8-11-centos /]# docker run -it abcd/ubuntu:2.1 /bin/bash
    root@890978529f83:/# cd /test
    root@890978529f83:/test# ll
    total 8
    ...
    -rw-r--r-- 1 root root    0 Nov 25 13:23 abc.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3)commit

    提交容器副本使之成为一个新的镜像

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    Options:
      -a, --author string    作者 (e.g., "John Hannibal Smith ")
      -m, --message string   注释信息
      -p, --pause            提交期间暂停容器(默认为真)
    
      -c, --change list      对创建的图像应用Dockerfile指令
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    [root@VM-8-11-centos ~]# docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED         STATUS         PORTS     NAMES
    ae04d5c9c832   ubuntu    "bash"    2 minutes ago   Up 2 minutes             heuristic_galileo
    [root@VM-8-11-centos ~]# docker commit -m "add vim ok" -a "lzw" ae04d5c9c832 vim/ubuntu:2.0
    sha256:7b84295ae8a4bac0d98e5662188f2b6ee1e3b0c5c139a5aee6370fe7226269e1
    [root@VM-8-11-centos ~]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
    vim/ubuntu   2.0       7b84295ae8a4   5 seconds ago   180MB
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4)tag

    重命名镜像标签

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
    • 1
    [root@VM-8-11-centos ~]# docker images
    REPOSITORY                                TAG       IMAGE ID       CREATED          SIZE
    [root@VM-8-11-centos ~]# docker tag ifconfig/ubuntu:2.1 10.0.8.11:5000/ifconfig/ubuntu:1.2
    [root@VM-8-11-centos ~]# docker images
    REPOSITORY                                TAG       IMAGE ID       CREATED          SIZE
    10.0.8.11:5000/ifconfig/ubuntu            1.2       30bc8d49a9fb   28 minutes ago   114MB
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5)push

    docker push [OPTIONS] NAME[:TAG]
    Options:
      -a, --all-tags                推送存储库中的所有标记图像
      -q, --quiet                   抑制详细输出
    
          --disable-content-trust   跳过图像签名(默认为真)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@VM-8-11-centos ~]# docker push 10.0.8.11:5000/ifconfig/ubuntu:1.2
    The push refers to repository [10.0.8.11:5000/ifconfig/ubuntu]
    2ca6189daa77: Pushed 
    9f54eef41275: Pushed 
    1.2: digest: sha256:33a697832ac04aa030a3a0c1c7210d9da59fc071bd6600468d295bc77a456b72 size: 741
    [root@VM-8-11-centos ~]# curl -XGET http://10.0.8.11:5000/v2/_catalog
    {"repositories":["ifconfig/ubuntu"]}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    6)build

    使用Dockerfile构建镜像

    docker build [OPTIONS] PATH | URL | -
    Options:
      -t, --tag list                “名称:标签”格式的名称和可选标签
      
          --target string           将目标生成阶段设置为生成
          --ulimit ulimit           Ulimit选项(默认[])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [root@VM-8-11-centos mydocker]# docker build -t lzw_docker:1.6 .
    Send build context to Docker daemon  6.144kB
    ...
    
    • 1
    • 2
    • 3

    7)stats

    查看容器的统计状态:CPU、内存…

    docker stats [OPTIONS] [CONTAINER...]
    Options:
      -a, --all             包含所有容器(默认只包含运行中的)
          --format string   使用go模板打印
          --no-stream       禁用流式统计,只提取第一个结果
          --no-trunc        不要截断输出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    五、网络命令

    docker network COMMAND
    Commands:
      connect     将容器连接到网络
      create      创建网络
      disconnect  断开容器与网络的连接
      inspect     显示一个或多个网络的详细信息
      ls          显示网络列表
      prune       删除所有未使用的网络
      rm          删除一个或多个网络
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    六、Compose 命令

    docker-compose -h                      # 查看帮助
    docker-compose up                      # 启动所有docker-compose服务
    docker-compose up -d                   # 启动所有docker-compose服务并后台运行
    docker-compose down                    # 停止并删除容器、网络、卷、镜像。
    docker-compose exec  yml里面的服务id     # 进入容器实例内部  docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
    docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器
    docker-compose top                     # 展示当前docker-compose编排过的容器进程
     
    docker-compose logs  yml里面的服务id     # 查看容器输出日志
    docker-compose config     			   # 检查配置
    docker-compose config -q  			   # 检查配置,有问题才有输出
    docker-compose restart   			   # 重启服务
    docker-compose start     			   # 启动服务
    docker-compose stop      			   # 停止服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    七、总结

    命令描述
    images列出系统当前镜像
    search在 docker hub 中搜索镜像
    pull从docker镜像源服务器拉取指定镜像或者库镜像
    rmi移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
    run创建一个新的容器并运行一个命令
    ps列出容器列表
    start启动容器
    restart重启运行的容器
    stop停止容器
    killkill 指定 docker 容器
    exec在已存在的容器上运行命令
    attach当前 shell 下 attach 连接指定运行镜像
    logs输出当前容器日志信息
    top查看容器中运行的进程信息
    inspect查看容器详细信息
    cp从容器中拷贝指定文件或者目录到宿主机中
    export导出容器的内容流作为一个 tar 归档文件[对应 import ]
    import从tar包中的内容创建一个新的文件系统映像[对应export]
    build通过 Dockerfile 定制镜像
    commit提交当前容器为新的镜像
    create创建一个新的容器,同 run,但不启动容器
    diff查看 docker 容器变化
    events从 docker 服务获取容器实时事件
    history展示一个镜像形成历史
    info显示系统相关信息
    load从一个 tar 包中加载一个镜像[对应 save]
    login注册或者登陆一个 docker 源服务器
    logout从当前 Docker registry 退出
    port查看映射端口对应的容器内部源端口
    pause暂停容器
    push推送指定镜像或者库镜像至docker源服务器
    save保存一个镜像为一个 tar 包[对应 load]
    tag给源中镜像打标签
    unpause取消暂停容器
    version查看 docker 版本号
    wait截取容器停止时的退出状态值

    在这里插入图片描述

  • 相关阅读:
    基于JAVA医患辅助系统计算机毕业设计源码+系统+数据库+lw文档+部署
    114 接口中幂等性的保证
    《Python零基础入门》——关于PyCharm使用技巧及python基本概念
    【毕业设计】13-基于单片机的锂电池管理系统(原理图+源码+仿真工程+论文)
    Remmina中VNC、SSH和RDP的区别
    pytest自动化测试框架之标记用例(指定执行、跳过用例、预期失败)
    19 Python的math模块
    Makefile学习笔记
    C++ 的继任者:Carbon Language | 开源日报 0911
    Eclipse的最常用的快捷键(一表搞定)
  • 原文地址:https://blog.csdn.net/weixin_43401592/article/details/128153377