前言 链接到标题

Docker 是基于 Go 语言实现的开源容器项目。它诞生于2013年年初,最初发起者是 dotCloud 公司。

Docker 大部分的操作都围绕着它的三大核心概念:镜像容器仓库

  • Docker 镜像

    Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。镜像是创建 Docker 容器的基础。

  • Docker 容器

    Docker 容器类似于一个轻量级的沙箱,Docker 利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。

  • Docker 仓库

    Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。

一,系统操作 链接到标题

1.1. 查看系统信息 链接到标题

  • 语法

    $ docker info [选项]
    
  • 实例

    $ docker info
    

1.2. 登陆 链接到标题

  • 语法

    $ docker login [OPTIONS] [SERVER]
    
  • 选项

    --password , -p		密码
    
    --password-stdin		从标准输入密码
    
    --username , -u		用户名
    
  • 实例

    $ docker login
    

1.3. 登出 链接到标题

  • 语法

    $ docker logout [SERVER]
    
  • 实例

    $ docker logout localhost:8080
    

二,使用 Docker 镜像 链接到标题

2.1. 获取镜像 链接到标题

$ docker [image] pullNAME[:TAG]

NAME 是镜像仓库名称(用来区分镜像), TAG 是镜像的标签(往往用来表示版本信息)。

# 获取一个 Nginx 1.19.3 镜像
$ docker pull nginx:1.19.3

# 下载一个最新版本 Nginx 镜像
$ docker pull nginx

对于 Docker 镜像来说,如果不显式指定 TAG,则默认会选择 latest 标签。latest标签意味着该镜像的内容会跟踪最新版本的变更而变化,内容是不稳定的。

2.2. 查看镜像信息 链接到标题

  • 语法

    $ docker images [选项] [REPOSITORY[:TAG]]
    
  • 选项

    -a, --all=true|false:列出所有(包括临时文件)镜像文件,默认为否
    
    --digests=true|false:列出镜像的数字摘要值,默认为否
    
    -f, --filter=[]:过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等
    
    --format="TEMPLATE":控制输出格式,如.ID代表ID信息,.Repository代表仓库信息等
    
    --no-trunc=true|false:对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为是
    
    -q, --quiet=true|false:仅输出ID信息,默认为否。
    
  • 实例

    # 显示所有镜像
    $ docker images
    
    # 显示 node 镜像
    $ docker images node
    
    # 显示 node 镜像数字摘要
    docker images --digests node 
    

2.3. 查看详细信息 链接到标题

使用 docker[image]inspect 命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等。

  • 语法

    docker inspect [选项] NAME|ID [NAME|ID...]
    
  • 选项

    --format , -f		使用给定的Go模板格式化输出
    --size , -s		如果类型为容器,则显示文件总大小
    --type		返回指定类型的JSON 
    
  • 实例

    # 查看 node 详情
    $ docker inspect node 
    
    # 输出格式
    docker inspect --format='{{.Os}}' node
    

2.4. 查看镜像历史 链接到标题

可以使用 history 子命令,列出镜像各层的创建信息。

  • 语法

    $ docker history [OPTIONS] IMAGE
    
  • 实例

    $ docker history node 
    

2.5. 搜索镜像 链接到标题

  • 语法

    $ docker search [选项] node 
    
  • 选项

    -f, --filter filter:过滤输出内容
    
    --format string:格式化输出内容
    
    --limit int:限制输出结果个数,默认为25个
    
    --no-trunc:不截断输出结果。
    
  • 实例

    # 搜索 node
    $ docker serch node
    

2.6. 打标签 链接到标题

  • 语法

    $ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
  • 实例

    # 为专用存储库标记镜像标签
    $ docker tag 0e5574283393 localhost:5000/fedora/httpd:version1.0
    
    # 标记名称和标记引用镜像
    $ docker tag httpd:test fedora/httpd:version1.0.test
    

2.7. 推送镜像 链接到标题

  • 语法

    $ docker push [OPTIONS] NAME[:TAG]
    
  • 实例

    $ docker push node:latest 
    

二,操作 Docker 容器 链接到标题

2.1. 新建容器 链接到标题

  • 语法

    $ docker create [选项] IMAGE [COMMAND] [ARG...]
    
  • 实例

    # 新建容器
    $ docker create -it node:latest
    

2.2. 查看容器列表 链接到标题

  • 语法

    $ docker ps [OPTIONS]
    
  • 实例

    # 查看容器
    $ docker ps
    
    # 查看所有容器
    $ docker ps -a
    

2.3. 运行容器 链接到标题

  • 语法

    $ docker start [选项] CONTAINER [CONTAINER...]
    
  • 实例

    $ docker start 769bab71c758
    

2.4. 启动bash终端 链接到标题

新建容器,并启动 bash 终端

  • 语法

    $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
  • 实例

    $ docker run -it node /bin/bash
    

2.5. 暂停容器 链接到标题

  • 语法

    $ docker pause CONTAINER [CONTAINER...]
    
  • 实例

    $ docker pause fd84cd4fc3b7 
    

2.6. 重启容器 链接到标题

  • 语法

    $ docker restart [OPTIONS] CONTAINER [CONTAINER...]
    
  • 实例

    $ docker restart fd84cd4fc3b7 
    

2.7. 终止容器 链接到标题

  • 语法

    $ docker stop [OPTIONS] CONTAINER [CONTAINER...]
    
  • 实例

    $ docker stop fd84cd4fc3b7
    

2.8. 进入容器 链接到标题

  • 语法

    $ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    
  • 实例

    $ docker exec -it 769bab71c758 /bin/bash
    

2.9. 删除容器 链接到标题

可以使用docker [container] rm命令来删除处于终止或退出状态的容器。

  • 语法

    $ docker rm [OPTIONS] CONTAINER [CONTAINER...]
    
  • 选项

     -f, --force=false:是否强行终止并删除一个运行中的容器
    
     -l, --link=false:删除容器的连接,但保留容器
    
     -v, --volumes=false:删除容器挂载的数据卷。
    
  • 实例

    $ docker rm e4f49098de08
    

2.10. 查看容器详情 链接到标题

  • 语法

    $ docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    
  • 实例

    $ docker inspect 692586a43ec2
    

参考 链接到标题