一、镜像命令
1.列出本机上的镜像
docker images
参数:
- -a 列出本地所有
- -q 只显示镜像ID
- --digests 显示镜像的摘要信息
- --no-trunc 显示完整的镜像信息
2.搜索镜像
docker search <image_name>
参数:
- -s 列出收藏数不小于指定值的镜像(-s 30 收藏数大于30的)
- --no-trunc 显示完整的镜像描述
- --automated 只列出automated build类型的镜像
3.下载镜像
docker pull <image_name>[:tag] 如果不指定tag,则下载latest版本
4.删除镜像
docker rmi <image_name>[:tag]/<image_id>
- 删除单个 docker rmi -f <image_id>
- 删除多个 docker rmi -f <image_id> <image_id>
- 删除全部 docker rmi -f $(docker images -qa)
二、容器命令
有镜像才能创建容器,这是根本前提
1.新建并启动容器
docker run <image_name>[:tag]/<image_id>
例如:docker run -it --name mycentos0 centos;docker run -it -p 8888:8080 tomcat
参数:
- --name <container_name> 为容器指定一个名称
- -d 后台运行容器,并返回容器ID,也启动守护式容器
- -i 以交互模式运行容器,通常与-t同时使用
- -t 为容器重新分配一个伪输入终端,通常与-i 同时使用
- -P 随机端口映射
- -p 指定端口映射,有四种格式 ip:host_port:container_port,ip::container_port,host_port:container_port,container_port
- -v或--volume 添加数据卷
- -e 设置环境变量
- -h或--hostname 指定容器的hostname(修改/etc/hostname)
- --link <container-name/container-id>:alias 添加链接到另一个容器(添加到/etc/hosts) 例: --link nginx_80:nginx_host
- --add-host (添加到/etc/hosts) 例:--add-host www.abc.com:127.0.0.1
- --privileged 使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
docker run -it -v /myDataVolume:/dataVolumneContailner 镜像名
2.列出当前容器
docker ps 列出当前正在运行的容器
参数:
- -a 列出当前所有正在运行的容器+历史上运行过的
- -l 显示最近创建的容器
- -n 显示最近n个创建的容器
- -q 静默模式,只显示容器编号
- --no-trunc 不截断输出
3.退出容器
exit 容器停止退出
ctrl+P+Q 容器不停止退出
4.启动容器
docker start <container_id>
docker restart <container_id>
5.停止容器
docker stop <container_name>/<container_id> 停止容器
docker kill <container_name>/<container_id> 强制停止容器
6.删除容器
docker rm <container_name>/<container_id>
删除所有容器
- docker rm -f $(docker ps -a -q)
- docker ps -a -q | xargs docker rm
7.查看容器日志
docker logs <container_name>/<container_id>
参数:
- -t 加入时间戳
- -f 跟随最新的日志打印
- --tail n 显示最后n条
8.查看容器内运行的进程
docker top <container_name>/<container_id>
9.查看容器内部细节
docker inspect <container_name>/<container_id>
10.进入正在运行的容器
docker exec -it <container_name>/<container_id> /bin/bash
docker attack <container_name>/<container_id>
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器打开新的终端,并且可以启动新的进程
11.提交
提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
12拷贝
docker cp 容器ID:容器内路径 目的主机路径