Appearance
常用命令
1. 镜像
查看镜像
- 列出本地的镜像文件
she
docker images
- 列出所有的镜像文件(包含中间映像层)
shell
## 含中间映像层
docker images -a
- 常用的一些查询
shell
# 查找指定名称的镜像
docker images | grep "镜像名称"
删除指定镜像
shell
# 删除单个镜像,相当于: docker rmi ucall-admin:latest
docker rmi ucall-admin
# 强制删除(如果此镜像已经有运行的容器)
docker rmi -f ucall-admin
# 删除多个镜像
docker rmi -f ucall-admin redis nginx
# 删除本地所有的镜像
docker rmi -f $(docker images -q)
# 删除指定前缀的tag的镜像
docker rmi -f $(docker images | grep "镜像名称" | awk '{print $3}')
## 解读:
## docker images | grep "镜像名称" | awk '{print $3}' 的含义是:
## docker images 将所有的镜像输出出来,然后通过 grep "镜像名称"过滤出其中指定镜像名称的镜像,最后awk '{print $3}'的作用是将前面过滤后的镜像选取并输出第三列的数据(及IMAGE ID)的数据,这样就变成了 docker rmi -f imageid imageid imageid...
# --- 1. 删除tag为none的镜像
docker rmi -f $(docker images | grep none | awk '{print $3}')
# 删除指定日期之前的镜像
docker image prune -a --filter "until=$(date +'%Y-%m-%dT%H:%M:%S' --date='-15 days')"
镜像的构建
shell
# -t ucall-admin:0.5.0 代表构建的镜像的名称为 ucall-admin tag为0.5.0 ( 镜像名称:Tag )
# . 代表以当前
docker build -t ucall-admin:0.5.0 .
镜像生成文件
shell
docker save imageid > xxx.jar
2. 容器相关
容器
- 容器的创建并启动
shell
# --name ucall-admin 指容器的名称为 ucall-admin
# -p 4031:80 指 将外部访问的3000端口映射到内部的80端口
# ucall-admin:latest 指镜像的名称和版本号
docker run -it --name ucall-admin -p 4031:80 ucall-admin:latest
- 停止容器
2.1. stop 关闭
docker stop [容器的ID(CONTAINER ID) | 容器的名称(NAMES11)]
shell
# ucall-admin 容器的名称
docker stop ucall-admin
说明:
shell
# 查看当前运行中的容器
docker ps
# 停止ucall-admin容器
docker stop ucall-admin
# 这是发现运行中的容器没有ucall-admin了
docker ps
# 查看所有的容器 就可以看到ucall-admin容器了
docker ps -a
2.2. kill 关闭
直接关闭容器
docker kill [容器的ID(CONTAINER ID) | 容器的名称(NAMES11)]
容器查看
- 查看正在运行的容器
shell
docker ps
- 查看所有的本地容器
shell
docker ps -a
- 查看容器的大小
docker ps [-s]
-s去添加一个容器大小的列
shell
# 查看正在运行的容器的大小
docker ps -s
# 查看所有的容器的大小
docker ps -a -s
- 查看正在运行的容器的CONTAINER ID
docker ps -q
shell
# 查看正在运行的容器的CONTAINER ID
docker ps -q
容器停止与删除
docker rmi [容器的ID(CONTAINER ID) | 容器的名称(NAMES11)]
- 删除已停止的容器
shell
docker rm ucall-admin
- 删除运行中的容器
shell
docker rm -f ucall-admin
- 删除多个容器
shell
docker rm -f ucall-admin nginx
容器重启
shell
docker start [容器的ID(CONTAINER ID) | 容器的名称(NAMES11)]
容器进程
查看容器内部的进程
shell
docker top nginx
容器日志
docker logs [-f] [-t] [-tail=100] [容器名称NAMES 或者 容器ID(CONTAINER ID)]
Options | 说明 | 栗子 |
---|---|---|
-f , --follow | 跟踪实时日志 | docker logs -f nginx |
--tail string | 从日志末尾显示多少行日志, 默认是all | docker logs --tail=100 nginx |
--until string | 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟) | docker logs --until="2018-02-09T12:23:37" nginx |
--since string | 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) | docker logs --since="2018-02-09T12:23:37" nginx |
-t , --timestamps | 显示时间戳 | |
--details | 显示更多的信息 | docker logs --details nginx |
- 简单的
shell
docker logs nginx
- 跟踪日志输出
shell
docker logs -f -t --tail=200 nginx
容器的进入与退出
shell
# 使用run方式在创建时进入
docker run -it centos /bin/bash
# 关闭容器并退出
exit
# 仅退出容器,不关闭
# 快捷键:Ctrl + P + Q
# 直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false 确保CTRL-D或CTRL-C不会关闭容器
docker attach --sig-proxy=false centos
# 在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i 即使没有附加也保持STDIN 打开;-t 分配一个伪终端
docker exec -i -t centos /bin/bash
# 以交互模式在容器中执行命令,结果返回到当前终端屏幕
docker exec -i -t centos ls -l /tmp
# 以分离模式在容器中执行命令,程序后台运行,结果不会反馈到当前终端
docker exec -d centos touch cache.txt
注意
- 删除
- 镜像的删除用
docker rmi
- 容器的删除用
docker rm