当前位置:  首页>> 技术小册>> 云计算那些事儿:从IaaS到PaaS进阶(三)

7.8 Docker常用命令

在深入探讨Docker作为容器化技术的核心力量时,掌握其常用命令是每位开发者、运维人员乃至云架构师不可或缺的技能。Docker通过一系列简洁而强大的命令,让容器的创建、管理、部署和监控变得前所未有的高效与灵活。本章将详细介绍Docker的一些常用命令,帮助读者快速上手并深入理解Docker的强大功能。

7.8.1 准备工作

在开始之前,请确保你的系统已经安装了Docker。Docker的安装方法因操作系统而异,但大多数Linux发行版、MacOS和Windows 10及更高版本都提供了官方或社区支持的Docker安装包。安装完成后,通常可以通过在终端或命令提示符中输入docker --version来检查Docker是否安装成功及其版本信息。

7.8.2 Docker镜像操作

搜索镜像
  • 命令docker search [关键词]
  • 描述:用于在Docker Hub(或配置的其他仓库)中搜索镜像。例如,docker search nginx会列出所有与nginx相关的镜像。
  • 选项:可以使用--filter选项来过滤搜索结果。
拉取镜像
  • 命令docker pull [镜像名]:[标签]
  • 描述:从Docker Hub或其他配置的仓库中下载并安装镜像。如果未指定标签,默认使用latest。例如,docker pull ubuntu:20.04会下载并安装Ubuntu 20.04的镜像。
查看本地镜像
  • 命令docker images
  • 描述:列出本地所有镜像及其相关信息,包括镜像ID、创建时间、大小等。
  • 选项:使用-a(或--all)选项显示所有镜像(包括中间层镜像),使用-q(或--quiet)仅显示镜像ID。
删除镜像
  • 命令docker rmi [镜像ID/镜像名:标签]
  • 描述:删除一个或多个本地镜像。如果镜像被容器使用,则无法直接删除,需要先删除相关容器或强制删除(慎用)。
  • 选项:使用-f(或--force)强制删除镜像,即使镜像被容器使用。

7.8.3 Docker容器操作

创建并启动容器
  • 命令docker run [选项] 镜像名 [命令]
  • 描述:根据指定的镜像创建一个新的容器并启动它。如果镜像本地不存在,Docker会尝试从配置的仓库中拉取。
  • 常用选项
    • -d--detach:在后台运行容器并打印容器ID。
    • -p--publish:端口映射,格式为宿主机端口:容器端口
    • -e--env:设置环境变量。
    • --name:为容器指定一个名称。
查看正在运行的容器
  • 命令docker ps
  • 描述:列出当前正在运行的容器。
  • 选项:使用-a(或--all)列出所有容器(包括未运行的),使用-q仅显示容器ID。
停止容器
  • 命令docker stop [容器ID/容器名]
  • 描述:优雅地停止一个或多个正在运行的容器。Docker会先向容器发送SIGTERM信号,等待一段时间后(默认为10秒),再发送SIGKILL信号强制停止容器。
启动已停止的容器
  • 命令docker start [容器ID/容器名]
  • 描述:启动一个或多个已停止的容器。
重启容器
  • 命令docker restart [容器ID/容器名]
  • 描述:先停止再启动容器。
进入容器内部
  • 命令docker exec -it [容器ID/容器名] /bin/bash/bin/sh
  • 描述:在运行的容器内部执行命令。对于大多数基于Linux的镜像,/bin/bash/bin/sh是常见的shell。
  • 选项-i(或--interactive)保持STDIN开放,-t(或--tty)分配一个伪终端。
查看容器日志
  • 命令docker logs [容器ID/容器名]
  • 描述:输出容器的日志信息。
  • 选项:使用-f(或--follow)持续输出日志信息,类似tail -f
删除容器
  • 命令docker rm [容器ID/容器名]
  • 描述:删除一个或多个容器。如果容器正在运行,需要先停止它。
  • 选项:使用-f(或--force)强制删除正在运行的容器。

7.8.4 其他常用命令

Docker镜像的导出与导入
  • 导出镜像docker save -o [导出的文件名].tar [镜像名]:[标签]
  • 导入镜像docker load -i [导出的文件名].tar

这些命令允许你将镜像导出为文件,然后在没有网络连接或需要备份的情况下,在其他系统上导入使用。

容器与宿主机之间的文件拷贝
  • 从宿主机拷贝到容器docker cp [宿主机源文件路径] [容器ID/容器名]:[容器内目标路径]
  • 从容器拷贝到宿主机docker cp [容器ID/容器名]:[容器内源文件路径] [宿主机目标路径]

这些命令对于在容器与宿主机之间快速传输文件非常有用。

7.8.5 小结

掌握Docker的常用命令是高效利用Docker进行容器化开发、部署和运维的基础。从镜像的搜索、拉取、查看、删除,到容器的创建、启动、停止、删除,再到容器日志的查看、容器与宿主机之间的文件拷贝,每一个命令都承载着Docker容器化技术的重要功能。通过反复练习和实际应用,你将能够更加熟练地运用这些命令,从而在云计算和微服务架构的实践中游刃有余。随着对Docker的深入理解和实践,你将能够构建更加灵活、高效、可扩展的云计算应用和服务。