项目源地址:https://github.com/wsargent/docker-cheat-sheet

docker的安装

略,windows上可以用docker desktop,具体可以参考官方文档。https://hub.docker.com/editions/community/docker-ce-desktop-windows

安装之后用admin身份打开powershell,输入

#Display the version of docker installed:
docker version

##Pull, create, and run 'hello-world' all in one command:
docker run hello-world

容器相关

容器的生命周期

  • [docker create](https://docs.docker.com/engine/reference/commandline/create) 创建但未启动
  • [docker rename](https://docs.docker.com/engine/reference/commandline/rename/) 重命名容器
  • [docker run](https://docs.docker.com/engine/reference/commandline/run) 一个命令创建并启动容器
  • [docker rm](https://docs.docker.com/engine/reference/commandline/rm) 删除容器
  • [docker update](https://docs.docker.com/engine/reference/commandline/update/)  更新容器的资源限制

几个有用的点

  • 一般启动容器我们用docker run -td container_id, -t表示分配TTY session,-d表示后台运行并打印容器id
  • docker run –rm 用来运行容器后自动删除
  • docker run -v $HOSTDIR:$DOCKERDIR 用来做volume的映射

容器的启动和停止

  • [docker start](https://docs.docker.com/engine/reference/commandline/start) 运行容器
  • [docker stop](https://docs.docker.com/engine/reference/commandline/stop) 停止一个运行中的容器
  • [docker restart](https://docs.docker.com/engine/reference/commandline/restart) 重启容器
  • [docker pause](https://docs.docker.com/engine/reference/commandline/pause/) 暂停容器
  • [docker unpause](https://docs.docker.com/engine/reference/commandline/unpause/) 继续运行一个暂停了的容器
  • [docker wait](https://docs.docker.com/engine/reference/commandline/wait) 等待直到容器停止
  • [docker kill](https://docs.docker.com/engine/reference/commandline/kill) 发送SIGKILL信号给容器
  • [docker attach](https://docs.docker.com/engine/reference/commandline/attach) 连接运行中的容器

限制cpu和内存

docker run -it -c 512 agileek/cpuset-test

上面的命令限制了cpu使用率为50%,看起来很奇怪对不对?因为100%使用率用的参数是-c 1024,所以50%就是512

我们还可以限制容器的内容使用

docker run -it -m 300M ubuntu:14.04 /bin/bash

容器信息

  • [docker ps](https://docs.docker.com/engine/reference/commandline/ps) 展示运行中的容器
  • [docker logs](https://docs.docker.com/engine/reference/commandline/logs) 从容器中拿日志
  • [docker inspect](https://docs.docker.com/engine/reference/commandline/inspect) 展示容器的具体信息
  • [docker events](https://docs.docker.com/engine/reference/commandline/events) 从容器获得事件
  • [docker port](https://docs.docker.com/engine/reference/commandline/port) 展示容器的公共端口
  • [docker top](https://docs.docker.com/engine/reference/commandline/top) 展示容器中运行的进程
  • [docker stats](https://docs.docker.com/engine/reference/commandline/stats) 展示容器的资源使用情况
  • [docker diff](https://docs.docker.com/engine/reference/commandline/diff) 展示容器的file system中变更的文件

docker ps -a:展示所有的容器,包括运行中和已停止的

docker stats –all: 展示所有的容器,不仅仅是运行中的容器的资源使用情况

导入和导出

  • [docker cp](https://docs.docker.com/engine/reference/commandline/cp) 本地和容器进行文件和文件夹拷贝的方式
  • [docker export](https://docs.docker.com/engine/reference/commandline/export) 导出容器到STDOUT,一般是以压缩包的方式了

执行命令

docker exec -it foo /bin/bash 去容器中执行命令