-s 列出收藏数不小于指定值的镜像: docker search -s 30 tomcat (查出tomcat的Starts大于30的镜像)
--format 格式化显示:sudo docker search --filter=stars=30 --format "table {{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}" tomcat
docker pull 镜像名字[:TAG] ----> docker pull tomcat 等价于 docker pull tomcat:latest
需要强制删除即: docker rmi -f hello-world ---> 等价于 docker rmi -f hello-world:latest
容器命令:
有镜像才能创建容器,这是根本前提(下载一个Ubuntu镜像演示)--> docker pull ubuntu (安装虚拟机差不多2个G,而镜像只有70多M)
新建并启动容器:
1.docker run [OPTIONS] images
OPTIONS说明:
图例:
启动交互式容器:即 -it , i --> 交互模式;t --> 伪终端;
命令为: docker run -it f643c72bc252
图例:命令行已经发生了变化,此时已经进到了以ubuntu为镜像创建的容器实例中:
docker ps OPTIONS参数说明:

docker ps -a (所有)
docker ps -n 3 (最近三个,最近的在最上面,以此类推)
docker ps -l (上一个)
docker ps -lq (只显示容器ID)
sudo docker run -it --name myubuntu0319 ubuntu (--name myubuntu0319 可以起别名,不指定系统会随机生成)
退出容器:
1.第一种方式:exit (容器停止退出, 此时容器状态已关闭了)
2.第二种方式:ctrl + p + q (容器不停止退出, 此时使用 docker ps ---> status => up)
此时再输入 docker ps 则刚刚退出来的容器就不在了;
启动容器:
即刚刚通过 exit 退出的,可以通过 docker start 容器id/名称
示例:sudo docker start a6226add4555
重启容器:
即通过 ctrl + p + q退出的,任然处在 up状态下的容器,命令: docker restart 容器ID/名称
示例:sudo docker restart d584d9c19d8b
停止容器:
温柔一些,命令: docker stop 容器ID/名称
示例:sudo docker stop d584d9c19d8b
强制停止容器:
粗暴一些,类似把电源,命令:docker kill 容器ID/名称
示例:sudo docker kill a6226add4555
删除已停止的容器:
命令:docker rm 容器ID
如果删除没有关停的容器使用: docker rm -f 容器ID
一次性删除多个容器:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
重点:
启动守护式容器:
命令:docker run -d 容器名
示例:sudo docker run -d ubuntu
但是使用 docker ps 时发现没有刚刚启动的容器?
说明:
查看容器日志:
命令:docker logs -f -t --tail 容器ID
-t 是加入时间戳(可以看到日志带时间)
-f 跟随最新的日志打印,追加打印最新输出日志
--tail 数字 显示最后多少条
首先输入:sudo docker run -d ubuntu /bin/sh -c "while true;do echo hello guos;sleep 2; done"
接着 docker ps
最后 sudo docker logs -t -f --tail 3 c3500b8179a2
查看容器内运行的进程:
命令:docker top 容器ID (类似Linux 里的 top)
示例:sudo docker top c3500b8179a2
查看容器内部细节:
命令:docker inspect 容器ID
示例:sudo docker inspect c3500b8179a2 ----> 返回的是类似json的数据结构(对象数组)
进入正在运行的容器并以命令行交互:
命令:docker exec -it 容器ID bashShell
重新进入命令:docker attach 容器ID
上述两者的区别:
1.attach 直接进入容器命令行终端,不会启动新的进程;
我们通过 ctrl + p + q 退出,还想进入
即: docker attach 容器ID (进入当前正在运行的容器)
示例:sudo docker attach 5d60b28faa27
2.exec是在容器中打开新的终端,并且可以启动新的进程;
示例:docker exec -t 容器ID ls -l /tmp ---> 没有进入容器,且把 ls -l /tmp 这个命令的结果返回给宿主机(隔山打牛);
示例:sudo docker exec -t 5d60b28faa27 ls -l /tmp ---> 结果:total 0 和我们在容器内看到的一样;
从容器内拷贝文件到主机上:
即想把容器内的数据持久化;
命令:docker cp 容器ID:容器内路径 目的主机路径
示例:
首现在容器内 : echo guos >> g.log
接着退出:ctrl + p + q
然后到宿主机上:sudo docker cp 5d60b28faa27:/tmp/g.log /home/gs
然后可以 ll 查看结果