《Docker常用命令》预览
一、Docker 常用命令
Docker 常用命令涵盖镜像管理、容器生命周期、数据卷与网络及系统维护四大核心领域,掌握这些命令可高效完成容器化部署与运维 。
镜像与容器管理
-
镜像操作:使用
docker images查看本地镜像,docker pull拉取镜像,docker rmi删除镜像,docker build构建新镜像 。 -
容器运行:
docker run创建并启动容器,常用参数包括-d后台运行、-p端口映射、-v挂载卷 。 -
状态控制:
docker ps查看运行中容器,docker start/stop/restart控制容器启停,docker rm删除容器,docker kill强制终止 。 -
交互与日志:
docker exec -it进入容器交互,docker logs -f实时查看日志,docker attach连接容器主进程 。
数据卷、网络与系统维护 -
数据卷:
docker volume create/ls/rm管理数据卷,docker run -v挂载宿主机目录或卷到容器,实现数据持久化 。 -
网络管理:
docker network ls/create/inspect查看与管理网络,docker network connect/disconnect连接或断开容器网络 。 -
系统清理:
docker system prune清理未使用资源,docker system df查看磁盘占用,docker version/info查看版本与系统信息 。
二、构建镜像(Building an Image)
Docker 是一个开源的应用容器引擎,它允许开发者打包、分发和运行应用程序。在 Docker 中,构建镜像是一个核心功能,它允许你将应用程序及其依赖打包在一个轻量级、可移植的容器中。以下是一些最常用的 Docker 命令,用于构建和管理 Docker 镜像:
- 构建镜像
-
docker build
使用
docker build命令从 Dockerfile 创建一个新的镜像。例如:docker build -t my-image-name:tag .这里
-t参数用于指定镜像的名称和标签(例如my-image-name:tag),最后的.表示 Dockerfile 位于当前目录。
- 查看本地镜像
-
docker images
使用
docker images命令可以列出所有本地的 Docker 镜像。例如:docker images
- 运行容器
-
docker run
使用
docker run命令从镜像启动一个新的容器。例如:docker run -d -p 80:80 --name my-container my-image-name:tag这里
-d表示后台运行容器,-p用于端口映射,--name指定容器名称。
- 查看运行中的容器
-
docker ps
使用
docker ps命令可以查看当前正在运行的容器。例如:docker ps
- 进入容器
-
docker exec
使用
docker exec命令可以在运行的容器中执行命令。例如,进入一个正在运行的容器:docker exec -it my-container /bin/bash
- 停止容器
-
docker stop
使用
docker stop命令可以停止一个或多个正在运行的容器。例如:docker stop my-container
- 删除容器和镜像
-
docker rm 和 docker rmi
使用
docker rm删除一个或多个容器,使用docker rmi删除一个或多个镜像。例如:docker rm my-container docker rmi my-image-name:tag说明:运行中的容器在删除前需要先停止,否则会产生如下错误:
root@myVulter:~# docker rm wordpress-wordpress-1
Error response from daemon: cannot remove container "wordpress-wordpress-1": container is running: stop the container before removing or force remove
- 查看容器的日志
-
docker logs
使用
docker logs命令可以查看容器的输出日志。例如:docker logs my-container
这些命令覆盖了从构建镜像到运行和管理容器的整个流程。通过熟练使用这些命令,你可以高效地使用 Docker。
三、拉取镜像
在Docker中,最常见的命令主要包括镜像(Images)、容器(Containers)、网络(Networks)、卷(Volumes)和守护进程(Daemon)管理等。这里我将重点介绍与镜像操作相关的最常用命令。
- 拉取镜像(Pulling an Image)
使用docker pull命令可以从Docker Hub或其他注册中心拉取镜像到本地。例如,要拉取最新的Ubuntu镜像:
docker pull ubuntu
你也可以指定标签(tag)来拉取特定版本的镜像:
docker pull ubuntu:18.04
- 查看镜像列表(Listing Images)
使用docker images命令可以列出本地所有的镜像。
docker images
你也可以使用docker image ls作为别名。
- 删除镜像(Removing an Image)
使用docker rmi或docker image rm命令可以删除一个或多个镜像。例如,删除一个名为ubuntu的镜像:
docker rmi ubuntu
或者使用别名:
docker image rm ubuntu
如果要删除所有未被容器使用的镜像,可以使用:
docker image prune
- 查找镜像(Searching for Images)
使用docker search命令可以在Docker Hub上搜索镜像。例如,搜索包含“nginx”的镜像:
docker search nginx
- 标记本地镜像(Tagging an Image)
使用docker tag命令可以给本地镜像添加标签,这在将镜像推送到远程仓库时非常有用。例如,给本地ubuntu镜像添加一个新标签:
docker tag ubuntu myusername/ubuntu:latest
四、创建并启动容器
运行 Docker 镜像最常用的方法是通过 docker run 命令,这是创建并启动容器的标准且唯一的官方方式。不过,根据使用场景和参数组合的不同,其用法可灵活变化,主要体现在以下几种常见形式:
- 基础运行(前台交互)
docker run -it 镜像名:tag /bin/bash
-i:保持标准输入打开(交互模式)-t:分配伪终端(TTY)- 适用于调试或进入容器内部操作,如测试、排错。
- 后台守护式运行
docker run -d --name 容器名 -p 宿主机端口:容器端口 镜像名:tag
-d:后台运行(detached mode)--name:自定义容器名称-p:端口映射,暴露服务到宿主机- 适用于部署服务(如 Nginx、MySQL、Redis 等)。
- 一次性执行命令后退出
docker run 镜像名:tag 命令 [参数]
- 不加
-it或-d,容器执行完命令即退出 - 适用于运行脚本、构建任务、测试等一次性任务,例如:
docker run ubuntu /bin/echo "Hello Docker!"
补充说明
docker run是唯一用于“运行镜像”的命令,其他如docker start只能启动已存在但已停止的容器,不能直接运行镜像 。- 若本地无指定镜像,
docker run会自动拉取(pull)该镜像(默认从 Docker Hub)。 - 常用附加参数包括:
-v:挂载数据卷(宿主机 ↔ 容器)-e:设置环境变量--restart:设置容器重启策略
✅ 总结:运行镜像只有一种方法 ——
docker run,但通过不同参数组合可实现交互式、后台化、一次性等多种运行模式。
五、停止容器并删除镜像
在使用Docker时,经常需要停止正在运行的容器并删除不再需要的镜像。以下是一些常用的Docker命令来实现这些操作:
停止正在运行的容器
要停止一个或多个正在运行的容器,可以使用docker stop命令。例如:
docker stop [容器ID或名称]
如果你想停止所有正在运行的容器,可以使用:
docker stop $(docker ps -q)
删除停止的容器
一旦容器被停止,你可以使用docker rm命令来删除它。例如:
docker rm [容器ID或名称]
如果你想删除所有已停止的容器,可以使用:
docker container prune
或者使用更老的命令(在一些Docker版本中可能仍然有效):
docker rm $(docker ps -a -q)
删除镜像
首先,确保没有容器正在使用该镜像。如果需要,可以先停止并删除相关的容器。然后,使用docker rmi命令来删除镜像:
docker rmi [镜像ID或名称]
如果你想删除所有未被任何容器使用的镜像(即孤立的镜像),可以使用:
docker image prune -a
或者使用更老的命令(在一些Docker版本中可能仍然有效):
docker rmi $(docker images -q -f dangling=true)
组合命令:停止并删除容器和镜像
如果你想一次性完成停止容器并删除镜像的操作,可以结合使用上述命令。例如,首先停止所有容器,然后删除所有未被使用的镜像:
docker stop $(docker ps -q) && docker container prune && docker image prune -a
这个命令序列首先停止所有容器,然后删除所有已停止的容器,最后删除所有未被使用的镜像。这可以帮助你清理不再需要的资源。