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