- 镜像命令
docker images :列出本地的镜像
参数:
-a 列出本地所有的镜像,含中间映射层
-q 只显示镜像id
--digests 显示镜像的摘要信息
--no -trunc 显示完整的镜像信息
docekr search xxx 从远程仓库查找镜像
参数:
--no-trunc :显示完整的镜像描述 docker search --no-trunc tomcat
-s:列出收藏数不小于指定值的镜像 docker -s 30 tomcat
-- automated:只列出automated build类型的镜像
docekr pull xxx 下载镜像
docker pull tomcat ==> docker pull tomcat:latest
docekr pull tomcat:3.2
docker rmi 镜像:版本号 删除镜像
参数:
-f:强制删除
docker rmi -f ID删除单个
docker rmi -f 镜像名:TAG
- 容器命令
新建并启动容器:
docker run [options] IMAGE [command][ARG...]
参数:
--name="容器新名字":为容器指定一个名称
-d:后台运行容器,并返回容器id,即启动守护式进程
-i:以交互模式运行容器,通常与-t一起使用
-t:为容器重新分配一个伪容器终端,通常与-i一起使用
-P(大写):随机端口映射
-p:指定端口映射,有以下四种形式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
docker run -it --name myCentos centos 新建启动交互式容器
列出所有正在运行的容器:
docker ps [options]
docker ps 默认显示当前正在运行的容器
参数:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-trunc:不截断输出
docker ps -aq 列出当前所有正在运行的容器+历史上运行过的容器ID
docekr rm $(docker ps -aq) 组合命令,删除所有的容器(类似于sql的子查询)
退出容器:
1.exit 容器停止退出
2.ctrl+p+Q 容器不停止退出
启动容器:
docker start 容器ID或者容器名
重启容器:
docker restart 容器ID或者容器名
停止容器:
docker stop 容器ID或者容器名
强制停止容器:
docker kill 容器ID或者容器名
删除已停止的容器:
docker rm 容器ID或者容器名
docker rm -f 容器ID或者容器名 强制删除容器(没有停止也可以删除)
删除多个容器:
docker rm $(docker ps -a -q)
docker ps -a -q | xarhs docker rm
启动守护式容器:
docker run -d 容器名
docker run -d centos以后台模式启动centos,docker ps进行查看,会发现容器已经退出,这是因为Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,以nginx为例,正常情况下,我们配置启动服务只需要启动相应的service即可,service nginx start,但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器启动后,会立即自杀,因为觉得没事可做了。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。
docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done" 添加shell脚本,每两秒打印输出,这样以后台运行的容器不会退出
查看容器日志:
docker logs -f -t --tail 容器ID
参数:
-t:加入时间戳
-f:跟随最新的日志打印
--tail 数字 显示最后多少条
查看容器内的进程:
docker top 容器ID
查看容器内部细节:
docker inspect 容器ID
进入正在运行的容器并以命令行交互:
首先启动容器并启动shell端,docker run -it centos /bin/bash,ctrl+p+Q 退出容器且不停止容器
1、doker exec -it 容器ID (bashShell) ls -l
2、重新进入容器 docker attach 容器ID
区别:
attach:直接进入容器启动命令的终端,不会启动新的进程
exec:是在容器中打开新的终端,并且可以启动新的进程,不进入容器,在宿主机上进行操作
docker exec -it 容器ID /bin/bash 进入容器,然后进行操作
从容器内拷贝文件到主机上:
docker cp 容器ID:xx路径 本机路径
网友评论