您的位置:首页 > 运维架构 > Docker

Docker学习笔记(三)docker命令

2020-03-06 13:42 991 查看

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:容器内路径 目的主机路径
  • 点赞
  • 收藏
  • 分享
  • 文章举报
小熊奶黄包 发布了20 篇原创文章 · 获赞 0 · 访问量 161 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: