Docker中的常用命令

帮助命令

查看docker版本

docker version

查看docker基本信息

docker info

docker帮助手册

docker --help
Usage: docker [OPTIONS] COMMAND [arg...]
Usage: docker [ 选项参数 ]        命令      [参数...(可多选)]

镜像命令

列出本地主机上的镜像
  • :REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • VIRTUAL SIZE:镜像大小
docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
hello-world         latest              fd74c3615f76        6 months ago        13.34 kB

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

OPTIONS说明

-a :列出本地所有的镜像(含中间映像层)

docker images -a

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
hello-world         latest              fd74c3615f76        6 months ago        13.34 kB
<none>              <none>              482c215f2373        6 months ago        13.34 kB
-q :只显示镜像ID。
-qa :组合操作,显示所以镜像的ID。

docker images -q
docker images -qa
--digests :显示镜像的摘要信息

docker images --digests

REPOSITORY          TAG                 DIGEST              IMAGE ID            CREATED             VIRTUAL SIZE
hello-world         latest              <none>              fd74c3615f76        6 months ago        13.34 kB
--no-trunc :显示完整的镜像信息

docker images --no-trunc

REPOSITORY          TAG                 IMAGE ID                                                           CREATED             VIRTUAL SIZE
hello-world         latest              fd74c3615f76e548000499194419d582abcb4d037e28f302da98e09fe6082b07   6 months ago        13.34 kB
查询镜像
docker search 某个XXX镜像名字

例如:docker search tomcat

NAME                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                        Apache Tomcat is an open source implementa...   2771      [OK]       
tomee                         Apache TomEE is an all-Apache Java EE cert...   79        [OK]       
dordoka/tomcat                Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   54                   [OK]
bitnami/tomcat                Bitnami Tomcat Docker Image                     35                   [OK]
....

docker search [OPTIONS] 镜像名字

--no-trunc : 显示完整的镜像描述

例:docker search  --no-trunc tomcat
-s : 列出收藏数不小于指定值的镜像。

例:docker search  -s 30 --no-trunc tomcat
--automated : 只列出 automated build类型的镜像;

例:docker search --automated tomcat
拉取镜像(下载镜像)
docker pull 镜像名字[:TAG]

例:docker pull tomcat
指定版本号:docker pull tomcat:2.3

注意:docker pull tomcat 等价于 docker pull tomcat:latest(最新版本)

删除镜像

删除单个

docker rmi  -f 镜像ID
f: 表示强制删除,主要针对于正在运行的镜像
例: docker rmi -f tomcat 或者指定版本号 docker rmi -f tomcat:2.4

注意: docker rmi -f tomcat 等价于 docker rmi -f tomcat:latest

删除多个

docker rmi -f 镜像名1:TAG 镜像名2:TAG 
例: docker rmi -f tomcat nginx

同理,不指定TAG默认删除latest版本

删除全部

docker rmi -f $(docker images -qa)

其实可以看成一个组合的命令,因为docker images -qa就是返回所有镜像的ID
同理
docker rmi -f $(images ID,images ID,...) 可以根据ID删除多个

容器命令

新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 OPTIONS说明(常用):有些是一个减号,有些是两个减号
 
 --name="容器新名字": 为容器指定一个名称;(没有指定即为随机名字)
 
 -i:以交互模式运行容器,通常与 -t 同时使用;(常用)
 -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;(常用)
 
 -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
 -P: 随机端口映射;
 -p: 指定端口映射,有以下四种格式
       ip:hostPort:containerPort
       ip::containerPort 
       hostPort:containerPort  
       containerPort

例: docker run -it -- name="mycentostest" centos 
	第一个为对外端口,第二个为tomcat配置端口
    docker run -it -p 8888:8080 tomcat
    随机端口映射
    docker run -it -P tomcat
-it 表示进入容器里的操作终端,以上就是进入centos容器中的伪操作终端
列出当前所有正在运行的容器
docker ps [OPTIONS]

OPTIONS说明(常用):
 -a :列出当前所有正在运行的容器+历史上运行过的
 -l :显示最近创建的容器。
 -n:显示最近n个创建的容器。
 -q :静默模式,只显示容器编号。
 --no-trunc :不截断输出。

例: docker ps -l
退出容器
容器停止退出
exit
当进入到容器的伪终端时,输入exit就可以退出


容器不停止退出
Ctrl+P+Q
启动容器
docker start 容器ID或者容器名

重启容器
docker restart 容器ID或者容器名
停止和强制停止容器
停止容器
docker stop 容器ID或者容器名

强制停止容器
docker kill 容器ID或者容器名

区别在于强制停止容器可以停止运行中的容器
删除已停止容器
docker rm 容器ID
ps: 容器被停止后会有缓存,以便下次运行,删除已停止容器就是将缓存删掉

删除多个
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
第二个命令的 docker ps -a -q 赋给后面的xargs,然后执行|后面的命令
比较重要的几个容器命令
启动守护式容器
回顾启动容器的内容,以伪终端的形式启动容器的命令为:
docker run -it centos

-d: 后台运行容器,并返回容器ID,也即启动守护式容器

docker run -d cnetos
表示启动后后台运行,无需进入伪终端

使用docker ps  查看,会发现容器已经退出了
原因是:Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的
这个是docker的机制问题
比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。
例如 service nginx start 
但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用
这样的容器后台启动后,会立即自杀,因为他觉得他没事可做了。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
查看容器日志
docker logs -f -t --tail 容器ID

OPTIONS说明
-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条

docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
这条命令可以保持和前台进程交互,有事干就不会触动机制自杀,容器就可以以后台运行的方式启动
查看容器日志即可看到日志一直在打印我们启动时规定的语句
查看容器内运行的线程

因为docker容器是一个简易的Linux环境,所以可以和Linux一样查看容器内运行的线程

docker top 容器ID
查看容器内部细节

以json串的形式展示容器额内部细节

docker inspect 容器ID
进入正在运行中的容器并以命令行交互

回顾前面的退出容器操作,有一个不停止退出

容器不停止退出
Ctrl+P+Q

重新进入不停止退出的容器,进入后会以伪终端的形式互交
docker attach 容器ID

下面的命令保护了 attach 的功能
docker exec -it 容器ID bashShell
如果bashShell为启动路径,那么将会进入互交模式
例:docker exec -it 容器ID /bin/bash
如果bashShell为有返回值的命令,那么将会返回内容,不会进如互交模式
例:docker exec -it 容器ID ls - l /tmp
从容器内拷贝文件到主机上
docker cp  容器ID:容器内路径 目的主机路径

例: docker cp 容器ID:/tmp/yum.log /root
前提是docker容器需要在运行中
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值