重点说明:以下所有命令,都是我实际练过、,主打一个好记、实用,不用死记硬背,结合场景记,练个2-3遍就能记住。
一、镜像相关
镜像就相当于容器的"模板",运行容器之前必须有镜像,这部分是基础中的基础。
-
查看本地所有镜像
docker images最简单也最常问,直接输这个命令,就能看到本地所有镜像的ID、名称、版本,没什么技巧,记准命令就行。 -
拉取镜像(从仓库下载,练手必用)
docker pull nginx# 拉取nginx最新版本**docker pull nginx:1.21** # 拉取指定版本,平时练手用nginx最多, -
删除镜像
docker rmi 镜像ID/镜像名称。注意!如果这个镜像正在运行容器,是删不掉的,得先停容器再删镜像。 -
构建镜像docker build -t myapp:v1 . -t是给镜像起名字+版本(比如myapp是名字,v1是版本),后面的"."绝对不能漏,代表当前目录的Dockerfile。
-
给镜像打标签(重命名,实用)
docker tag nginx mynginx:v2简单说就是给镜像换个好记的名字,比如把官方nginx镜像,改成自己能区分的名字,后续用起来方便,不用记长长的镜像ID。 -
搜索镜像(偶尔用)**d
ocker search nginx**想找某个镜像的时候用,比如不知道镜像全名,搜一下就能看到,不用死记硬背镜像名称。
二、容器相关
容器就是镜像运行起来的实例,运维日常操作最多的就是容器,这部分命令一定要练到闭着眼能敲出来。
-
运行容器 **
docker run -d --name mynginx -p 80:80 nginx**拆解一下(面试会让你解释每个参数):-d是后台运行(不然你关了终端,容器就停了),--name是给容器起名字(比如mynginx,方便后续操作),-p是端口映射(宿主机80端口映射到容器80端口),后面跟镜像名称。 -
查看运行中的容器
docker ps简单好记,输完就能看到正在运行的容器,面试必问,和docker images搭配着考。 -
查看所有容器 **
docker ps -a**注意:不加-a只能看到运行中的。 -
启动/停止/重启容器 **
docker start 容器ID/容器名称docker stop 容器ID/容器名称docker restart 容器ID/容器名称**这三个命令放一起记,逻辑很简单,启动就是start,停止就是stop,重启就是restart,后面跟容器ID或名字都可以,推荐用名字,不用记长长的ID。 -
删除容器**
docker rm 容器ID/容器名称注意:停止的容器才能删,运行中的删不掉,想强制删就加-f参数:docker rm -f 容器ID**。 -
暂停/恢复容器**
docker pause 容器IDdocker unpause 容器ID** 暂停就是暂停容器运行,恢复就是继续运行,不用死记,知道有这个命令就行。
三、进入容器内部
工作中经常需要进入容器内部查看文件、执行命令,这两个命令一定要记牢,面试必问"怎么进入运行中的容器"!
-
交互式进入容器(最常用)
docker exec -it 容器ID /bin/bash拆解:-it是交互式进入,能输入命令,/bin/bash是进入容器的终端,输完这个命令,就相当于进入了容器内部,能操作里面的文件、执行命令。 -
直接在容器内执行命令(不用进入) **
docker exec 容器ID ls /**比如想查看容器根目录的文件,不用进入容器,直接输这个命令就行,实用又高效。
四、日志、资源查看
运维日常要排查问题,查看日志、资源占用是必备操作。
-
查看容器日志**
docker logs 容器IDdocker logs -f 容器ID**# 实时跟踪日志(排查问题必用) -f参数很重要,能实时看到容器的日志输出,比如容器启动失败,用这个命令就能看到报错信息。 -
查看容器详细信息**
docker inspect 容器ID/镜像名** 能看到容器的所有详细信息,比如端口映射、挂载目录、网络配置等。 -
查看容器资源占用 **
docker stats**输完就能看到所有运行中容器的CPU、内存占用情况。
五、数据卷与挂载
容器删除后,里面的数据会丢失,所以数据持久化很重要,数据卷和挂载就是解决这个问题的。
-
挂载宿主机目录(最常用) **
docker run -v /宿主机目录:/容器目录 nginx**比如把宿主机的/data目录,挂载到容器的/data目录,这样容器里的数据会同步到宿主机,就算容器删了,宿主机的数据还在。 -
创建数据卷**
docker volume create myvol**数据卷是Docker管理的存储目录,比直接挂载宿主机目录更规范, -
查看所有数据卷 **
docker volume ls**简单好记,查看本地创建的所有数据卷,知道就行。
六、批量操作+清理
工作中经常需要批量操作容器、清理无用资源,这几个命令能省很多事。
-
停止所有运行中的容器**
docker stop $(docker ps -q)** 不用一个个停止,一键停止所有运行中的容器,实用拉满,记准这个命令。 -
删除所有停止的容器**
docker container prune** 清理无用容器,释放空间。 -
清理所有无用资源(镜像、容器、数据卷等)
docker system prunedocker system prune -a# 彻底清理(连没使用的镜像也删) 注意:-a参数会删除所有没使用的镜像,慎用!
七、Docker Compose
一般不会只运行一个容器,都是多个容器配合(比如nginx+mysql),Docker Compose就是管理多个容器的。
-
启动所有服务(后台运行)
docker-compose up -d -
停止所有服务(并删除容器)
docker-compose down -
查看所有服务日志**
docker-compose logs -f** -
重启单个服务(比如nginx)
docker-compose restart nginx
最后说句真心话
希望这篇命令整理,能帮到和我一样的运维新手, 有补充的命令,欢迎评论区留言交流