帮助命令
- docker version 查看版本
- docker info 查看docker 信息
- docker --help 查看docker 帮助命令
镜像命令
查看 docker 本地主机上的所有镜像
docker images
- OPTIONS 说明
- -a : 列出本地所有得镜像
- -q : 只显示镜像ID
- –digests : 显示镜像的摘要信息
- –no-trunc : 显示完整的镜像信息
搜索某个镜像名字
docker search xxx
- OPTIONS 说明:
- –no-trunc : 显示完整的镜像描述
- -s :列出收藏数不小于指定值的镜像
- -automated : 只列出 automated build 类型的镜像
docker pull 拉去xxx镜像
docker pull 镜像名字:tag
tag 代表版本号
docker rmi 删除xxx镜像
docker rmi -f 镜像ID
删除单个
docker rmi -f 镜像名1:tag 镜像名2:tag
删除多个
docker rmi -f ${docker images -qa}
删除全部
容器命令:
tip : 有镜像才会有容器
- 新建并启动容器
docker run [options] images [command] [arg...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
- 列出当前正在运行的容器
docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出
-
退出容器
①. exit 容器停止退出
②. ctrl + q + p 容器不停止退出 -
启动容器
docker start 容器ID 或者容器名
-
重启容器
docker restart 容器ID 或者容器名
-
停止容器
docker stop 容器ID 或者容器名
-
强制停止容器
docker kill 容器ID 或者容器名
-
删除已经停止的容器
docker rm 容器ID
-
一次性删除多个容器
①.docker rm -f ${docker ps -a -q}
②.docker ps -a -q | xargs docker rm
-
启动守护式容器
docker run -d 容器名
#使用镜像centos:latest以后台模式启动一个容器
docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
- 查看容器日志
docker logs -f -t --tail 容器ID
①. -t 加入时间戳
②. -f 跟随最新的日志打印
③. --tail 数字显示最后多少条 - 查看容器中运行的进程
docker top 容器ID
- 查看容器内部细节
docker inspect 容器ID
- 与正在运行的容器进行交互
①:docker exec -it 容器ID bashShell
②:重新进入 docker attach 容器ID
区别:
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程
- 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
- 容器提交为镜像
docker commit -m="提交的信息" -a="作者" 容器ID要创建的目标镜像名:[tag]