Docker常用命令总结
- docker官网:Docker Documentation | Docker Documentation
- Docker Hub:Docker Hub
Docker命令
官方文档命令说明
Docker 镜像的基本命令
启动docker
systemctl start docker
#重启
service docker restart
帮助命令
docker version # 显示docker版本信息
docker info # docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
查看镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
Name, shorthand | Default | Description |
--all , -a | Show all images (default hides intermediate images) | |
--digests | Show digests | |
--filter , -f | Filter output based on conditions provided | |
--format | Pretty-print images using a Go template | |
--no-trunc | Don't truncate output | |
--quiet , -q | Only show image IDs |
-a, --all 列出所有镜像
--digests 显示摘要
-f, --filter filter 根据提供的条件过滤输出
--format string 指定返回值的模板文件
--no-trunc 不截断输出,显示完整的镜像信息
-q, --quiet 只显示镜像ID
REPOSITORY | 镜像的仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像的id |
CREATED | 镜像的创建时间 |
SIZE | 镜像的大小 |
搜索镜像
docker search [OPTIONS] TERM
- 网页搜索
- 地址:Docker Hub
下载镜像
- 官网:docker pull | Docker Documentation
-
下载镜像 docker pull 镜像名[:tag]
-
tag可以指定版本,没有的话默认使用最新版
-
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Name, shorthand | Default | Description |
--all-tags , -a | Download all tagged images in the repository | |
--disable-content-trust | true | Skip image verification |
--platform | Set platform if server is multi-platform capable | |
--quiet , -q | Suppress verbose output |
指定版本下载
- 版本必须存在,可知docker hub上查看
删除镜像
- 官网:docker rmi | Docker Documentation
- 可以通过IMAGE ID删除,也可以根据镜像名称来删除
# 删除指定id的镜像
docker rmi -f 容器id
# 删除多个镜像
docker rmi -f 容器id 容器id 容器id
# 删除全部镜像
docker rmi -f $(docker images -aq)
容器命令的基本命令
- 说明:有了镜像才可以创建容器,要先下载一个centos镜像来测试学习
- docker pull centos
新建容器并启动
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 常用参数说明
--name="NAME" 容器名字 用于区分容器
-d 后台方式运行
-it 使用交互方式运行,要进入容器查看内容
-p 指定容器端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用)
-p 容器端口
-P(大写的P) 随机指定端口
- 注:Ctrl+ D 退出
列出所有的运行的容器
docker ps [OPTIONS]
可选项:
-a # 列出当前正在运行的容器 + 历史运行过的容器 就是全部容器
-n=? # 显示最近创建的容器 ?表示个数
-q # 只显示容器的编号
退出容器
exit # 直接停止容器并退出
ctrl + p + q # 容器不停止退出
删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm 容器id # 删除指定id的容器,不能删除正在运行的容器 rm -f 强制删除
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -q|xargs docker rm # 通过管道删除所有的容器
启动和停止容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止容器
docker kill 容器id # 杀死容器
- 后台启动容器
docker run -d centos # 后台启动
- 说明:
- 启动docker后ps会发现centos停止了
- 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程(就是交互)如果 docker 发现没有应用,自己没有提供服务,就会立刻停止
日志、元数据、进程的查看
查看日志
docker logs --help
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
--tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
docker logs -f -t --tail 容器id 行数 # 查看容器运行日志
- 示例1:
- 示例2:
查看容器中进程信息
# 查看容器内的进程信息
docker top 容器id
查看镜像的元数据
- 官网:docker inspect | Docker Documentation
- 参考:https://blog.csdn.net/baidu_41388533/article/details/108536934
# 查看容器内所有信息
docker inspect 容器id
进入容器命令、容器至主机文件拷贝命令
进入当前正在运行的容器
- 通常都是将容器放在后台运行,有时候就需要进入容器,修改一些配置
docker exec -it 容器id bashShell
docker attach 容器id
- 两种命令的区别:
- docker exec 是进入容器后开启了一个新的终端,可以在里面操作
- docker attach 是进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径
- 拷贝是一个手动过程,之后我们可以使用 -v 卷的技术,自动同步
命令总结
attach 当前 shell 下 attach 连接指定运行镜像
build 通过 Dokcerfile 定制镜像
commit 提交当前容器为新的镜像
cp 从容器中拷贝指定文件或目录到宿主机中
create 创建一个新的容器,同 run 但是不启动容器
diff 查看 Docker 容器变化
events 从 Docker 服务获取容器实时时间
exec 在已存在的容器上运行命令
export 到处容器的内容流作为一个 tar 归档文件(对应 import)
history 显示镜像形成历史
images 列出系统当前镜像
import 从 tar 包中的内容创建一个新的文件系统映像(对应 export)
info 显示系统相关信息
inspect 查看容器详细信息
kill kill 指定 docker 容器
load 从一个 tar 包中加载镜像(对应 save)
login 注册或登录一个 docker 源服务器
logout 从当前 Docker registry 退出
logs 输出当前容器日志信息
pause 暂停容器
port 查看映射端口对应的容器内部源端口
ps 列出容器列表
pull 从 docker 镜像源服务器拉去指定镜像或者库镜像
push 推送指定镜像或者库镜像至 docker 源服务器
rename 重命名一个容器
restart 重启一个或多个容器
rm 移除一个或多个容器
rmi 移除一个或多个镜像(无容器使用该镜像才可移除,否则需删除相关容器才可继续或 -f 强制执行)
run 创建一个新的容器并运行一个命令
save 保存一个镜像为一个 tar 包(对应load)
search 在 docker hub 中搜索镜像
start 启动容器
stats 显示实时的容器资源使用情况统计流
stop 停止容器
tag 给源中的镜像打标签
top 查看容器中运行的进程信息
unpause 取消暂停容器
update 为容器更新配置
version 查看 docker 版本号
wait 阻塞直到一个或多个容器停止,然后打印其退出代码,即截取容器停止时的退出状态值