1. Docker命令行基础概述
Docker命令行是与Docker引擎交互的主要方式,就像我们通过键盘与电脑对话一样。想象一下,你面前有一台功能强大的机器,但如果没有控制按钮和操作面板,它就只是一堆金属和塑料。Docker CLI(Command Line Interface)就是这套控制面板,让你能够指挥Docker引擎完成各种容器操作。
我第一次接触Docker命令行时,感觉就像学习一门新的外语。但很快发现,它其实比图形界面更高效、更灵活。在服务器环境中,命令行往往是唯一的选择,这也是为什么掌握Docker CLI如此重要。
Docker命令遵循一个通用模式:docker [选项] 命令 [参数]。比如最基本的docker run hello-world,这个简单的命令背后其实发生了很多事情:Docker会检查本地是否有hello-world镜像,如果没有就从Docker Hub下载,然后创建并启动一个容器来运行它。
提示:所有Docker命令都可以加上
--help参数查看详细用法,比如docker run --help。这是我最常用的"救命稻草"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 容器生命周期管理命令
2.1 创建和启动容器
docker run是使用最频繁的命令,它实际上是create+start的组合。一个典型的使用场景:
bash复制docker run -d -p 8080:80 --name my_nginx nginx
这个命令做了以下几件事:
-d:让容器在后台运行(detached模式)-p 8080:80:将主机的8080端口映射到容器的80端口--name my_nginx:给容器起个名字(否则Docker会随机生成)nginx:使用的镜像名称
我经常看到新手忘记给容器命名,结果后面要操作特定容器时不得不先查ID。给容器起个有意义的名字能省去很多麻烦。
2.2 停止和删除容器
停止容器用docker stop,删除用docker rm。但有个更高效的做法:
bash复制docker rm -f my_nginx
-f参数会强制删除运行中的容器(相当于先stop再rm)。在开发环境中我经常这样用,但在生产环境要谨慎。
注意:删除容器不会自动删除其使用的卷(volumes),需要手动加
-v参数:docker rm -fv my_nginx
2.3 容器状态管理
docker ps是最常用的状态查看命令:
docker ps:显示运行中的容器docker ps -a:显示所有容器(包括已停止的)docker ps -q:只显示容器ID(适合脚本中使用)
我习惯用docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"自定义输出格式,信息更清晰。
3. 镜像管理命令
3.1 镜像的获取与查找
从仓库拉取镜像用docker pull:
bash复制docker pull ubuntu:20.04
如果不指定tag,默认拉取latest。但我建议总是明确指定版本,因为"latest"可能会变,导致生产环境不一致。
搜索镜像用docker search:
bash复制docker search mysql
不过现在更多是直接去Docker Hub网站搜索,因为能看到更详细的描述和星级评价。
3.2 本地镜像管理
查看本地镜像列表:
bash复制docker images
# 或者
docker image ls
删除镜像用docker rmi(注意不是docker rm):
bash复制docker rmi ubuntu:20.04
如果镜像被容器使用,需要先删除容器。我经常用这个命令清理空间:
bash复制do
