Write by lyc at 2019-8-19

一、docker container 管理容器命令

  • 容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)
  • 如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。
  • 所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会修改镜像的源文件,这种方式提高了磁盘利用率。
1
$ Usage:  docker container COMMAND

COMMAND

COMMAND description
ls 列出容器
inspect 查看容器底层信息
exec 在容器中执行命令
commit 创建一个新镜像来自一个容器
cp 拷贝文件/目录到一个容器
logs 获取容器的控制台输出日志
port 列出或指定容器端口映射
top 显示容器运行的进程
stats 显示容器资源使用统计
stop/start/restart 停止/启动/重启容器
rm 删除容器

二、docker 容器管理常用命令

1.查看容器

1
2
3
4
$ docker ps -a                # 查看本地所有的容器
$ docker ps -l # 查看最新创建的一个容器
$ docker container ls # 查看本地运行中的容器
$ docker container ls -a # 查看本地所有的容器

2.查看容器的详细信息

1
2
# 查看某个容器的详细信息
$ docker container inspect CONTAINER_ID

3.查看容器日志

1
2
$ docker container logs -f --tail 50 CONTAINER_ID     # 监控容器控制台日志
$ docker container logs --tail 50 CONTAINER_ID # 查看容器控制台日志最后N行

4.进入容器

1
$ docker container exec -it CONTAINER_ID /bin/bash

5.删除单个容器

1
2
3
$ docker container stop CONTAINER_ID      # 先停止容器
$ docker container rm CONTAINER_ID # 删除停止的容器
$ docker container rm -f CONTAINER_ID # 强行删除容器

6.容器的批量操作

1
2
3
4
5
6
7
8
9
10
11
# docker中 启动所有的容器命令
$ docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

# docker中 关闭所有的容器命令
$ docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

# docker中 删除所有的容器命令
$ docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

# docker中 删除所有的镜像
$ docker rmi $(docker images | awk '{print $3}' |tail -n +2)

7.清理所有处于终止状态的容器

1
$ docker container prune

8.docker 全局命令

1
2
3
4
5
6
# 类似于Linux上的df命令,用于查看Docker的磁盘使用情况
$ docker system df

# 用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
$ docker system prune
$ docker system prune -a # 清理得更加彻底,可以将没有容器、镜像都删掉