Loading... Docker是一种流行的容器化平台,可以在一个独立的、隔离的环境中构建、部署和运行应用程序。了解Docker常用命令可以帮助我们更高效地管理容器,快速开发和部署应用。本文将整理一系列Docker的常用命令,便于日常使用和学习。 ## 1 Docker基础命令 1.1 启动/停止/重启docker ```bash # 启动 systemctl start docker # 停止 systemctl stop docker # 重启 systemctl restart docker ``` 1.2 设置开机自启动 ```bash # 设置 systemctl enable docker # 取消开机自启动 systemctl disable docker ``` 1.3 查看docker状态 ```lua systemctl status docker ``` 1.4 查看版本信息 ``` docker version ``` 该命令显示当前安装的Docker客户端和服务器版本信息。 1.5 显示Docker系统信息 ``` docker info ``` 该命令展示关于Docker安装的详细信息,包括运行容器的数量、镜像的数量、存储驱动、网络配置等。 1.6 查看帮助 ```bash docker --help ``` ## 2 镜像管理命令 2.1 搜索镜像 ```css docker search [镜像名] ``` 在镜像仓库上搜索指定的名称的镜像,默认是Docker Hub。 ```sql docker search nginx ``` 不过企业一般会使用harbor搭建自己的镜像仓库 2.2 下载镜像 ```less docker pull [镜像名]:[标签] ``` 下载指定的镜像到本地。如果不指定标签,则默认下载latest版本。例如: ``` docker pull nginx:latest ``` 2.3 列出本地镜像 ``` docker images ``` 列出本地所有镜像,显示镜像ID、仓库、标签、大小等信息。 2.4 删除镜像 ```css docker rmi [镜像ID或镜像名] ``` 删除本地的某个镜像。例如: ``` docker rmi nginx:latest ``` -f 参数可以执行强制删除镜像 ``` docker rmi -f mysql ``` 删除全部镜像(慎用) ```javascript docker rmi -f $(docker images -aq) ``` -a 意思为显示全部, -q 意思为只显示ID 2.5 构建镜像 ```less docker build -t [镜像名]:[标签] [Dockerfile所在路径] ``` 从指定路径的Dockerfile构建一个新的镜像。例如从当前路径构建 ``` docker build -t nginx:1.0 . ``` 2.6 导入镜像 ```css docker load -i 镜像保存文件位置 docker load -i /data/nginx.tar ``` 2.7 保存镜像 ```bash docker save -o 保存的目标文件名称 镜像名 docker save -o /data/nginx.tar nginx ``` 保存后的镜像可以使用load加载到其他服务器上。 2.8 给镜像打标签 ```css 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 创建并运行容器 ```css docker run [选项] [镜像名] -d:后台运行容器 -p:端口映射 --name:指定容器名称 -v:挂载卷;例如-v 主机路径:容器路径 ``` 示例:在后台运行一个名为mynginx的nginx容器,并映射端口: ```css docker run -d -p 8080:80 --name mynginx nginx ``` 3.2 查看运行中的容器 ``` docker ps ``` 列出当前正在运行的容器,显示容器ID、镜像、状态、端口映射等信息。 3.3 查看所有容器(包括停止的) ```css docker ps -a ``` 3.4 启动和停止容器 ```bash # 启动容器 docker start [容器ID或容器名] # 停止容器 docker stop [容器ID或容器名] ``` 3.5 重启容器 ```css docker restart [容器ID或容器名] ``` 3.6 删除容器 ```bash docker rm [容器ID或容器名] ``` 删除指定的容器。如果容器正在运行,可以使用-f强制删除。 3.7 进入容器 ```bash docker exec -it [容器ID或容器名] /bin/bash ``` 在容器内启动一个交互式的Shell。例如: ```bash docker exec -it mynginx /bin/bash ``` 3.8 查看容器日志 ```css docker logs [容器ID或容器名] ``` 查看容器的输出日志。常用选项: -f:实时输出日志。--tail n:显示最后n行日志。例如: ```bash docker logs -f --tail 20 mynginx ``` 3.9 查看容器内部细节 ```css docker inspect [容器ID或容器名] ``` ## 4 数据卷管理命令 数据卷(Volume)是Docker中持久化数据的关键,通过数据卷可以将容器内的数据持久化到宿主机中。 4.1 创建数据卷 ```lua docker volume create [卷名] docker volume create data ``` 4.2 查看数据卷 ```bash docker volume ls ``` 列出所有数据卷。 4.3 删除数据卷 ```bash docker volume rm [卷名] docker volume rm data ``` 删除指定的数据卷。 4.4 查看数据卷详情 ```css docker volume inspect [卷名] ``` 显示数据卷的详细信息,包括挂载路径。 ## 5 网络管理命令 Docker支持创建自定义网络,以便容器之间可以通过自定义网络相互通信。 5.1 创建网络 ```css docker network create [网络名] ``` 创建一个自定义网络,通常是bridge类型的网络。 5.2 查看网络 ```bash docker network ls ``` 列出所有网络,包括默认网络。 5.3 查看网络详情 ```css docker network inspect [网络名] ``` 显示指定网络的详细信息,包括连接到该网络的容器信息。 5.4 删除网络 ```bash docker network rm [网络名] ``` 删除指定的自定义网络。 5.5 将容器连接到网络 ```css docker network connect [网络名] [容器名或容器ID] ``` 5.6 将容器从网络断开 ```css docker network disconnect [网络名] [容器名或容器ID] ``` ## 6 Docker Compose命令 Docker Compose是一种定义和运行多容器Docker应用的工具,通过一个docker-compose.yml文件定义应用的服务和配置。 6.1 启动服务 ```bash 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进行日常的运维、测试和部署工作。 Last modification:December 3, 2024 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏