Docker常用命令-自用

时间:2025-05-12 09:40:28

Docker常用命令-自用

1. 镜像仓库

1.1 登陆/登出

登陆-默认Docker Hub

docker login -u [username] -p [password]
  • 1

登陆到指定镜像

docker login -u [username] -p [password] [镜像地址]
  • 1

登出

docker logout
  • 1
1.2 拉取镜像

拉取镜像

docker pull /dotnet/core/aspnet
  • 1

拉取指定tag的镜像

docker pull /dotnet/core/aspnet:3.1-buster-slim
  • 1

拉取镜像所有tag

docker pull --all-tags /dotnet/core/aspnet
  • 1
1.3 推送镜像

PS:推送到Docker Hub镜像仓库时候莫名会出现权限问题,把镜像重命名为[用户名/镜像名]后可以解决

docker push [username/]NAME:TAG
  • 1

2 镜像操作

2.1 查看镜像

默认显示所有*图像,隐藏了中间镜像,以下命令作用相同

docker images
docker image ls
docker image list
  • 1
  • 2
  • 3

显示所有镜像,包括中间镜像

docker images -a
  • 1

仅显示镜像ID

docker images -q
  • 1

format序列化,列出镜像ID和仓库名的命令,和列出ID、Repository和tag的命令

docker images --format "{{.ID}:    {.Repository}}"
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
  • 1
  • 2

仅列出给定仓库nginx的所有镜像

docker images java
  • 1
2.2 移除镜像

移除nginx镜像

docker image rm nginx
  • 1

移除ID或Repository与给定字符串匹配的镜像

docker rmi [ID/Repository]
  • 1
2.3镜像进阶操作

查看镜像所有细节

docker inspect nginx
  • 1

PS: 在Windows系统中,可以通过docker inspect aspdotnetcoreapp|findstr "ASPNETCORE_URLS"命令查看aspnetcore应用监听的端口

移除悬虚(未被使用的,官方:dangling)镜像,亦即docker image 返回的Repository为""的镜像

docker image prune
  • 1

移除所有悬虚镜像,且包含所有未被容器使用的镜像

docker image prune -a
  • 1

移除所有镜像

docker rmi $(docker image -p)
  • 1

3 容器操作

3.1 查看

查看运行中的容器

docker ps
  • 1

查看所有的容器

docker ps -a
  • 1
3.2 运行/新建

启动/停止指定容器

docker start containerID
docker stop containerID
  • 1
  • 2

运行一个新的容器,自动分配容器名称

docker run nginx
  • 1

运行一个新的容器,然后10秒后退出

docker run nginx sleep 10
  • 1

ducker run [option] nginx命令的参数

参数(及示例) 描述
-d 后台运行
-it 以交互模式运行,并且未容器重新分配一个"伪输入终端"
-p 8000:80 将容器中的80端口映射到宿主机的8000端口
-P 容器内部端口随机映射到主机的端口。如果发布的是aspnetcore应用(应用自身会指定监听端口),随机分配的容器内部端口与应用自身监听的端口不一致\n应用将无法正常访问
–expose=[] 开发一个或一组端口
–name containername 指定新容器的名称
–net=“bridge” 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型

进入容器环境,container是可选参数

docker [container] exec -it NAME bash
  • 1
3.3 容器进阶操作

列出所有容器ID

docker ps -a -p
  • 1

启动/停止所有容器

docker start $(docker ps -a -p)
docker stop $(docker ps -a -p)
  • 1
  • 2

强制结束所有容器(慎用

docker kill $(docker ps -a -p)
  • 1

删除所有容器(慎用

docker rm $(docker ps -a -p)
  • 1

参考文件:
[1] Docker Documentation