Docker常用命令大全

Docker是一种流行的容器化平台,可以在一个独立的、隔离的环境中构建、部署和运行应用程序。了解Docker常用命令可以帮助我们更高效地管理容器,快速开发和部署应用。本文将整理一系列Docker的常用命令,便于日常使用和学习。

1 Docker基础命令

1.1 启动/停止/重启docker

复制代码
# 启动
systemctl start docker
# 停止
systemctl stop docker
# 重启
systemctl restart docker

1.2 设置开机自启动

复制代码
# 设置
systemctl enable docker
# 取消开机自启动
systemctl disable docker

1.3 查看docker状态

复制代码
systemctl status docker

1.4 查看版本信息

复制代码
docker version

该命令显示当前安装的Docker客户端和服务器版本信息。

1.5 显示Docker系统信息

复制代码
docker info

该命令展示关于Docker安装的详细信息,包括运行容器的数量、镜像的数量、存储驱动、网络配置等。

1.6 查看帮助

复制代码
docker --help

2 镜像管理命令

2.1 搜索镜像

复制代码
docker search [镜像名]

在镜像仓库上搜索指定的名称的镜像,默认是Docker Hub。

复制代码
docker search nginx

不过企业一般会使用harbor搭建自己的镜像仓库

2.2 下载镜像

复制代码
docker pull [镜像名]:[标签]

下载指定的镜像到本地。如果不指定标签,则默认下载latest版本。例如:

复制代码
docker pull nginx:latest

2.3 列出本地镜像

复制代码
docker images

列出本地所有镜像,显示镜像ID、仓库、标签、大小等信息。

2.4 删除镜像

复制代码
docker rmi [镜像ID或镜像名]

删除本地的某个镜像。例如:

复制代码
docker rmi nginx:latest

-f 参数可以执行强制删除镜像

复制代码
docker rmi -f mysql

删除全部镜像(慎用)

复制代码
docker rmi -f $(docker images -aq)

-a 意思为显示全部, -q 意思为只显示ID

2.5 构建镜像

复制代码
docker build -t [镜像名]:[标签] [Dockerfile所在路径]

从指定路径的Dockerfile构建一个新的镜像。例如从当前路径构建

复制代码
docker build -t nginx:1.0 .

2.6 导入镜像

复制代码
docker load -i 镜像保存文件位置
docker load -i /data/nginx.tar

2.7 保存镜像

复制代码
docker save -o 保存的目标文件名称 镜像名
docker save -o /data/nginx.tar  nginx

保存后的镜像可以使用load加载到其他服务器上。

2.8 给镜像打标签

复制代码
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag nginx  10.10.10.200/software/nginx:1.26

有时候根据业务需求 需要对一个镜像进行分类或版本迭代操作,此时就需要给镜像打上标签。10.10.10.200为镜像仓库地址,software为镜像仓库名称

3 容器管理命令

3.1 创建并运行容器

复制代码
docker run [选项] [镜像名]

-d:后台运行容器

-p:端口映射

--name:指定容器名称

-v:挂载卷;例如-v 主机路径:容器路径

示例:在后台运行一个名为mynginx的nginx容器,并映射端口:

复制代码
docker run -d -p 8080:80 --name mynginx nginx

3.2 查看运行中的容器

复制代码
docker ps

列出当前正在运行的容器,显示容器ID、镜像、状态、端口映射等信息。

3.3 查看所有容器(包括停止的)

复制代码
docker ps -a

3.4 启动和停止容器

复制代码
# 启动容器
docker start [容器ID或容器名]

# 停止容器
docker stop [容器ID或容器名]

3.5 重启容器

复制代码
docker restart [容器ID或容器名]

3.6 删除容器

复制代码
docker rm [容器ID或容器名]

删除指定的容器。如果容器正在运行,可以使用-f强制删除。

3.7 进入容器

复制代码
docker exec -it [容器ID或容器名] /bin/bash

在容器内启动一个交互式的Shell。例如:

复制代码
docker exec -it mynginx /bin/bash

3.8 查看容器日志

复制代码
docker logs [容器ID或容器名]

查看容器的输出日志。常用选项:

-f:实时输出日志。--tail n:显示最后n行日志。例如:

复制代码
docker logs -f --tail 20 mynginx

3.9 查看容器内部细节

复制代码
docker inspect [容器ID或容器名]

4 数据卷管理命令

数据卷(Volume)是Docker中持久化数据的关键,通过数据卷可以将容器内的数据持久化到宿主机中。

4.1 创建数据卷

复制代码
docker volume create [卷名]
docker volume create data

4.2 查看数据卷

复制代码
docker volume ls

列出所有数据卷。

4.3 删除数据卷

复制代码
docker volume rm [卷名]
docker volume rm data

删除指定的数据卷。

4.4 查看数据卷详情

复制代码
docker volume inspect [卷名]

显示数据卷的详细信息,包括挂载路径。

5 网络管理命令

Docker支持创建自定义网络,以便容器之间可以通过自定义网络相互通信。

5.1 创建网络

复制代码
docker network create [网络名] 

创建一个自定义网络,通常是bridge类型的网络。

5.2 查看网络

复制代码
docker network ls

列出所有网络,包括默认网络。

5.3 查看网络详情

复制代码
docker network inspect [网络名]

显示指定网络的详细信息,包括连接到该网络的容器信息。

5.4 删除网络

复制代码
docker network rm [网络名]

删除指定的自定义网络。

5.5 将容器连接到网络

复制代码
docker network connect [网络名] [容器名或容器ID]

5.6 将容器从网络断开

复制代码
docker network disconnect [网络名] [容器名或容器ID]

6 Docker Compose命令

Docker Compose是一种定义和运行多容器Docker应用的工具,通过一个docker-compose.yml文件定义应用的服务和配置。

6.1 启动服务

复制代码
docker-compose up

# 后台运行
docker-compose up -d

根据docker-compose.yml文件中的配置启动所有服务,常用选项:-d:后台运行所有服务。--build:在启动之前重新构建镜像。

6.2 停止服务

复制代码
docker-compose down

停止并删除所有容器、网络和卷。

6.3 构建或重建服务

复制代码
docker-compose build

6.4 查看服务状态

复制代码
docker-compose ps

列出由docker-compose管理的所有服务及其状态。

6.5 查看服务日志

复制代码
docker-compose logs [服务名]

查看指定服务的日志,常用选项:

-f:实时输出日志。--tail n:显示最后n行日志。

7 常用清理命令

7.1 清理无用的数据

Docker提供了一些简单的清理命令,用于删除不再使用的容器、镜像、卷和网络。

(1)删除所有已停止的容器:

复制代码
docker container prune

(2)删除未使用的镜像:

复制代码
docker image prune

(3)删除所有未使用的数据卷:

复制代码
docker volume prune

(4)删除所有未使用的网络:

复制代码
docker network prune

(5)清理所有未使用的资源(包括镜像、容器、卷和网络):

复制代码
docker system prune

通过掌握这些常用命令,可以更轻松地使用Docker进行日常的运维、测试和部署工作。

相关推荐
小马过河R7 小时前
K8s引入Service Mesh原因及Istio入门
云原生·容器·kubernetes·k8s·istio·service_mesh
行者Sun19898 小时前
【K8s】Kubernetes 虚拟机管理工具之 KubeVirt
云原生·容器·kubernetes
途经六月的绽放8 小时前
Docker Compose 从入门到实践
java·docker
虚伪的空想家8 小时前
生产环境K8S的etcd备份脚本
运维·容器·kubernetes·脚本·备份·etcd
不会吉他的肌肉男不是好的挨踢男12 小时前
docker 安装TDengine 并创建新用户
docker·容器·iot·tdengine
FrankYoou12 小时前
docker logs 显示的日志,默认是保存在哪里?
docker·容器
ape所念皆星河12 小时前
远程配置服务器 ubuntu22.04 里的 docker 的x11
运维·服务器·docker
小一鹿呀13 小时前
Docker一键部署prometheus并实现飞书告警详解
docker·飞书·prometheus
阆遤15 小时前
在Docker debian容器中编译aarch64平台python3.11.9,并创建可离线迁移到统信uos2.0的开发环境
docker·gcc·python3.11·aarch64·统信uos2.0
Arenaschi17 小时前
Android
android·linux·运维·笔记·其他·docker