Docker常用命令总结
一、Docker环境信息命令
docker version # 查看docker版本信息 docker info # 查看docker详细信息
二、系统日志信息常用命令
2.1 docker events
作用:从服务器获取实时事件,比如:启动、关闭和创建docker等,可带参数。
-f :根据条件过滤事件; --since :从指定的时间戳后显示所有事件; --until :流水时间显示到指定的时间为止;
2.1 docker logs
作用:获取容器的日志,可带参数。
-f : 跟踪日志输出 --since : 显示某个开始时间的所有日志 -t : 显示时间戳 --tail : 列出最新N条容器日志 docker logs -f mynginx
2.3 docker history
作用:查看指定容器的创建历史。
三、容器的生命周期管理命令
3.1 docker create
作用:创建一个容器,但是不启动。
3.2 docker run
作用:创建一个docker并执行一条指令。
docker run [OPTIONS] IMAGE [CMD] [ARG...]
常用选项:
- –cidfile 将容器id写到指定文件,如:docker run --rm --cidfile /tmp/idfile ubuntu
- -d/–detach 后台运行容器并打印容器id
- –entrypoint 覆盖镜像默认程序入口
- -e/–env 设置环境变量
- –env-file 从文件中读取环境变量
- –expose 暴露一个或者多个端口
- –group-add 为容器用户添加更多的用户组
- -i/–interactive 保持标准输入设备处于打开状态
- –mount 将文件系统挂载到容器,与 -v 类似
- –name 指定容器名称
- –privileged 授予容器超级权限
- -p/–publish 容器端口映射到主机端口
- -P 容器端口随机映射一个主机端口
- –read-only 将容器根文件系统装载为只读
- –restart 容器退出时的重启策略,默认为no
- –rm 当容器退出时,自动删除容器
- -t/–tty 分配一个为终端设备
- -v/–volume 绑定数据卷
- –volume-from 从指定的容器装载数据卷
- -w/–workdir 指定容器内的工作目录
3.3 docker start/stop/restart
docker start # 启动一个或多个已被停止的容器 docker stop # 停止一个运行中的容器 docker restart # 重启容器
3.4 docker kill
作用:杀死一个运行中的容器,-s 向容器发送一个信号。
docker kill -s TERM mynginx docker kill -s KILL mynginx
docker kill 和 docker stop的区别:
- 发送的信号量不同,前者默认发送的是KILL信号量(9),后者默认发送的是TERM信号量(15)
- kill是强制杀死容器,不执行清理工作,stop会执行程序的清理流程
3.5 docker rm
作用:删除一个或多个容器
3.5 docker pause/unpause
作用:暂停/恢复容器中所有进程。
四、容器运维命令
4.1 docker exec
作用:在运行的 docker 中执行命令
docker exec -i -t mynginx /bin/bash // 通过exec 执行命令 docker exec mynginx ls
4.2 docker ps
作用:列出容器
docker ps [OPTIONS] -a 显示所有容器,包括未运行的 -f 根据条件过滤显示容器 -l 显示最近创建的容器 -n 列出最近创建的n个容器
4.3 docker inspect
作用:获取容器或镜像的元数据。返回的是Json。
docker inspect -f '{{.Name}}' ca14e6427a80
查看容器id为 ca14e6427a80 的Name字段的值。
4.4 docker top
作用:查看容器中运行的进程信息。
4.4 docker attach
docker attach <container_id>
docker exec 和 docker attach 的区别:
- exec是在容器中执行命令,并且可以通过-i -t 创建虚拟终端与容器交互
- attach 是进入容器某个正在执行的命令终端,不能交互。但是,如果该容器的命令终端是一个能交互的终端,那么也能交互。
退出attach模式的方法:
(1)如果attach的目标容器,在运行时没有指定-i -t 参数,ctrl+c 虽然会退出attach模式,但是对应的容器进程也会退出。
(2)如果attach的目标容器,在运行时指定了-t 参数,ctrl+c 正常退出。
(3)如果执行的是docker attach --sig-proxy=false ,ctrl+c 正常退出
4.5 docker wait
作用:阻塞等待,直到容器停止,打印出退出代码。
4.6 docker export
作用:将文件系统作为一个tar归档文件导出。
4.7 docker export
作用:列出指定容器的端口映射。
4.8 docker cp
作用:用于和宿主机之间的数据拷贝。
# 主机/www/html目录拷贝到容器1881f0cba5bc的/www目录下 docker cp /www/html 1881f0cba5bc:/www/ # 将主机/www/html目录拷贝到容器1881f0cba5bc中,目录重命名为www。 docker cp /www/html 1881f0cba5bc:/www # 将容器1881f0cba5bc的/www目录拷贝到主机的/tmp目录中 docker cp 1881f0cba5bc:/www /tmp/
4.9 docker diff
作用:检查容器里文件结构的更改。docker diif 会列出容器内文件的状态变化列表。其中,A (Add)表示新增的文件,C(Change) 表示改变的文件。
4.10 docker rename
作用:修改容器的名字。
4.11 docker stats
类似于 top,监控容器的资源使用情况。
4.12 docker update
作用:用来修改docker run指定的运行参数。
docker update --restart no mynginx5
五、镜像管理命令
5.1 docker build
作用:用于使用 Dockerfile 创建镜像。Dockerfile我们会在后面的文章详细介绍。
docker build [OPTIONS] --build-arg=[] # 设置镜像创建时的变量 --cache-from # 指定镜像用作当前构建的缓存镜像 -f,--file # 指定要使用的Dockerfile路径; --force-rm # 不论构建是否成功,总是删除中间容器,默认false。注意:中间容器; --no-cache # 创建镜像的过程不使用缓存; --tag, -t # 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。 --target # 设置要生成的目标生成阶段
5.1 docker images
作用:列出本地镜像。
docker images -a # 列出本地所有镜像 --digests # 显示镜像的摘要信息 -f # 显示满足条件的镜像 # 查看所有悬空镜像 docker images --filter dangling=true # 清除所有悬空镜像 docker image prune
5.2 docker rmi
作用:删除本地一个或多个镜像。-f 表示强制删除。
5.3 docker tag
作用:标记本地镜像,并将其归入某个仓库。
docker tag mynginx1:v1 mynginx1:1.0
5.4 docekr save
作用;将指定镜像保存为tar归档文件。
docker save -o mynginx1.tar mynginx1:v1
5.5 docker load
作用:导入 docker save 导出的镜像,-i 指定导入的文件。
docker load -i mynginx1.tar
5.6 docker import
作用:从归档文件中创建镜像。
docker import mynginx1.tar mynginx1:v2
5.7 docker commit
作用:从容器创建一个新的镜像。
docker commit -a "panda" -m "mynginx commit" mynginx mynginxtest:1.0
六、镜像仓库操作命令
6.1 docker login
作用:登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login -u user -p pwd [SERVER]
6.2 docker logout
作用:登出到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
6.3 docker pull
作用:从镜像仓库中拉取或者更新指定镜像。
docker pull nginx
6.4 docker push
作用:将本地镜像推送到远端仓库,前提是已经登录到该仓库。
docker push [OPTIONS] NAME[:TAG]
6.5 docker search
作用:从远端仓库查找镜像,-f 过滤条件。
# 从 Docker Hub 查找所有镜像名包含 nginx,并且收藏数大于 10 的镜像 docker search -f stats=10 nginx