1.下载一个CentOS镜像演示(有镜像才能创建容器)
docker pull 镜像名称[:TAG]
docker pull centos (省略TAG默认使用:latest)
查看镜像
OPTIONS常用说明:
-a:列出本地所有的镜像(含中间映象层)
-q:只显示镜像ID
--digests:显示镜像的摘要信息
--no-trunc:显示完整的镜像信息
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 months ago 13.3kB
centos latest 300e315adb2f 8 months ago 209MB
搜索镜像
OPTIONS常用说明:
--no-trunc:显示完整的镜像描述
-s:列出收藏数不小于指定值的镜像
--automated:只列出automated build类型的镜像
docker search 镜像名称
删除镜像
docker rmi 镜像ID,或名称[:TAG] (省略TAG默认使用:latest)
2.新建并启动容器
2.1 启动交互式容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS常用说明:
--name="容器名称":为容器指定一个名称
-d:后台运行容器,并返回容器ID,即启动守护式容器;
-i:以交互模式运行容器,通常与-t同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-P:随机端口映射;
-p:指定端口映射;
-e:传递环境变量
2.2 启动守护式容器
docker run -d 容器名
测试后台运行centos并以/bin/sh循环打印到控制台:
docker run -d centos /bin/sh -c "while true;do echo hello debugger;sleep 30;done"
3.列出当前所有正在运行的容器
docker ps [OPTIONS]
OPTIONS常用说明:
-a:列出当前所有正在运行的容器+历史上运行过的容器;
-l:显示最近创建的容器;
-n:显示最近n个创建的容器;
-q:静默模式,只显示容器编号;
--no-trunc:不截断输出
4.退出容器
(1)exit:容器停止退出
(2)ctrl+P+Q:容器不停止退出
5.启动容器
docker start 容器ID或容器名
6.重启容器
docker restart 容器ID或容器名
7.停止容器
docker stop 容器ID或容器名
强制停止
docker kill 容器ID或容器名
8.删除容器
删除一个容器:
docker rm 容器ID或容器名
强制删一个容器:
docker rm -f 容器ID或容器名
一次性删除多个容器:
docker rm $(docker ps -a -q --filter ancestor=image-name)
$符包围的是根据镜像查询的容器的id。在$中,-q表示只显示容器id。--filter表示根据条件筛选,ancestor=image-name表示选择镜像名为image-name的容器。
docker images | grep ??? | awk '{print $1":"$2}' | xargs docker rm
docker ps -a | grep ??? | awk '{print $1}' | xargs docker rm
9. 查看容器日志
docker logs -f -t --tail 数字 容器ID
OPTIONS常用说明:
-t:加入时间戳
-f:跟随最新的日志打印
--tail 数字: 显示最后多少条
10.查看容器内运行进程
docker top 容器ID
11.查看容器内部细节
docker inspect 容器ID
12.进入正在运行的容器并以命令行交互
docker exec -it 容器ID /bin/bash (以bashShell登录)
重新进入:docker attach 容器ID
区别:
attach:直接进入容器启动命令的终端,不会启动新的进程
exec:在容器中打开新的终端,并且可以启动新的进程
不进入容器获取命令结果
docker exec -t 容器ID ls -l /tmp
13.从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径