Docker学习笔记(三)docker命令
1.帮助命令
docker version
docker info
docker --help
2.镜像命令
查看本机镜像
docker images
名称 | 解释 |
---|---|
REPOSITORY | 表示镜像的仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建的时间 |
SIZE | 镜像大小 |
同一仓库源可以有多个TAG,代表这个仓库源的不同版本
补充:
列出本地所有的镜像(含中间映像层)
docker images -a
只显示镜像ID
docker images -q
显示镜像的摘要信息
docker images --digests
显示完整的镜像信息
docker images --no-trunc
查询镜像
注意查询的时候,是在docker hub官网中查询,如果需要下载,则在之前设置的阿里云镜像网址上下载。
查询名为tomcat的镜像
docker search tomcat
查询名为tomcat的镜像,收藏数不小于30,而且显示出完整的镜像描述
docker search -s 30 --no-trunc tomcat
下载镜像
例如下载tomcat镜像
docker pull tomcat
补充:docker pull tomcat :++ ++代表版本号,上述示例中没有加任何,直接默认为latest版
删除镜像
删除tomcat镜像
docker rmi tomcat
强制删除tomcat镜像
docker rmi -r tomcat
删除多个镜像
docker rmi -f tomcat hello-world
删除全部镜像
docker rmi -f $(docker images -qa)
3.容器命令
下面以CentOS镜像为演示:
首先从阿里云上拉下来一个CentOS镜像:
docker pull centos
新建并启动容器
模板
docker run [OPTIONS] IMAGE [COMMAND][ARG...]
OPTION说明 | 解释 |
---|---|
–name=“容器新名字” | 为容器指定一个名称 |
-d | 后台运行容器,并返回容器ID,也即启动守护者容器 |
-i | 以交互模式运行容器,通常与-t共同使用 |
-t | 为容器分配一个伪输入终端,通常与-i同时使用 |
-P | 随机端口映射 |
-p | 指定端口映射 |
接下来启动容器:
docker run -it --name mycentos2020 centos
可以看出来我们已经进入docker上运行CentOS系统中,并且进入了终端,得益于i(交互模式)t(启动伪终端)。
查看当前运行的容器
模板:
docker ps [OPTIONS]
OPTION说明 | 解释 |
---|---|
-a | 列出当前所有正在进行的容器+历史上进行过的 |
-l | 显示最近创建的容器 |
-n | 显示最近n个创建的容器 |
-q | 静默模式,只显示容器编号 |
–no-trunc | 不截断输出 |
退出容器
容器停止退出
exit
不停止退出 :ctrl + P + Q
启动容器
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进行查看,会发现容器已经退出。
很重要的说明一点:Docker容器后台运行,就必须有一个前台进行。
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的,这是docker运行机制的问题。
查看容器日志
docker logs -f -t --tail 数字 容器ID或容器名字
参数 | 解释 |
---|---|
-f | 跟随最新的日志打印 |
-t | 加入时间戳 |
–tail 数字 | 显示最后多少条 |
举个例子:
docker run -d --name ttt centos /bin/sh -c "while true; do echo hello world; sleep 2;done" docker ps docker logs -f -t ttt
可以看出来名字叫ttt的CentOS容器每两秒打印一次hello world.
查看容器内运行的进程
docker top 容器ID或容器名字
查看容器内部细节
docker inspect 容器ID或容器名字
进入正在运行的容器并以命令行交互
两种方式 第一种: docker exec -it 容器ID bashShell 第二种: docker attach 容器ID
上述两种区别:
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 在容器中打开新的终端,并且可以启动新的进程
可能说的比较抽象:咱们举个栗子,首先启动一个交互性CentOS容器并退出,让它在后台进行运行
docker run -it centos ctrl + p + q docker ps
接下来我们想看看咱们新建的centos容器中tem文件里内容,首先采用第一种attach方法:
docker attach 容器ID或名字 ls -l /tmp
紧接着退出来,执行第二种exec方式:
docker exec -it 容器ID或名字 ls -l /tmp
总结一下attach必须进入执行,而exec可以在外面执行,并且也能进入里面执行,明显看出exec方式比较强大
exec进入里面执行代码: docker exec -it 容器ID或名字 /bin/bash
从容器内拷贝内容到主机上
docker cp 容器ID:容器内路径 目的主机路径
- 点赞
- 收藏
- 分享
- 文章举报
- Docker学习笔记(2)--Docker常用命令
- Docker学习笔记(五)之attach与logs命令
- docker学习笔记3--docker容器命令
- docker常用命令,学习笔记
- Docker学习笔记:Docker 基础用法和命令帮助
- Docker基本命令学习笔记
- Docker学习笔记之top,inspect,exec,export命令
- docker学习笔记二:常用命令
- docker学习笔记1—常用命令
- 学习笔记-Docker基础命令
- Docker学习笔记(2)-- Docker常用命令
- Docker学习笔记之top,inspect,exec,export命令
- docker学习笔记05:docker inspect命令
- Docker学习笔记--Docker常用命令
- Docker学习笔记之镜像管理命令
- Docker学习笔记——Docker 命令指令详情
- Docker学习笔记(2)--Docker常用命令
- docker学习笔记2--对镜像/容器的命令操作
- docker学习笔记08:run命令及参数详解
- Docker学习笔记:Docker 基础用法和命令帮助