1. # 下载镜像并运行容器
  2. docker image pull nginx
  3. docker container run -d --name nginx-test -p 8080:80 nginx
  4. # 停止并删除容器
  5. docker container stop nginx-test
  6. docker container rm nginx-test
  7. # 删除镜像
  8. docker image prune
  9. # -a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;
  10. # f, --force:强制删除镜像文件,无需弹出提示确认;
  11. # 删除镜像
  12. docker image rm
  13. docker container [command]
  14. docker network [command]
  15. docker volume [command]
  16. docker image [command]

与容器进行交互

  1. # 与容器进行交互
  2. docker container attach nginx-test
  3. # 启动容器 后台
  4. docker container start nginx-test
  5. # ctrl+c 容器依旧运行
  6. docker container attach --sig-proxy=false nginx-test
  7. # attach 连接容器正在运行的进程 即一个进程
  8. # exec 在容器中生成第二个进程
  9. docker container exec nginx-test cat /etc/debian_version
  10. # 对容器控制台访问
  11. # -i interactive 使Docker保持stdin打开状态
  12. # -t tty 为会话分配一个伪TTY teletypewriter 电传打字机 纯文本控制台(终端)
  13. docker container exec -i -t nginx-test /bin/bash

日志

logs 与容器stdout流进行交互

  1. # 查看最后写入stdout的5条日志
  2. docker container logs --tail 5 nginx-test
  3. # 实时查看日志
  4. docker container logs -f nginx-test
  5. # 查看自特定时间以来记录的所有内容
  6. docker container logs --since 2022-08-24T10:00:00 nginx-test
  7. # 列出指定容器中运行的进程
  8. docker container top nginx-test

stats

供有关指定容器的实时信息

  1. # 可传递Name or ID 默认查看所有正在运行的容器
  2. docker container stats
  3. # 查看容器占用的资源
  4. docker stats <container_id>

限制资源

  1. # --cpu-shares 512 cpu优先级(权重) 4096 高
  2. # 降低cpu优先级并限制内存为128M
  3. # 设置内存后Docker默认将交换内存设置其两倍
  4. docker container run -d --name nginx-test --cpu-shares 512 --memory 128M -p 8080:80 nginx
  5. # 更新正在运行的容器
  6. docker container update --cpu-shares 512 --memory 128M nginx-test
  7. # 展示正在运行容器的所有配置 以字节显示
  8. docker container inspect nginx-test
  9. docker container inspect nginx-test | grep -i memory

容器状态和其他(较少使用)指令

  1. # 快速启动5个容器 Up
  2. for i in {1..5}; do docker container run -d --name nginx$(printf "$i") nginx; done
  3. docker container ls -a
  4. # 暂停和取消暂停
  5. # 暂停nginx1
  6. docker container pause nginx1
  7. # 取消暂停 恢复
  8. docker container unpause nginx1

stop, start, restart, and kill

  1. # stop 与在前台使用ctrl+c一样 SIGTERM
  2. docker container stop nginx2
  3. # -t time 一分钟后终止进程
  4. docker container stop -t 60 nginx3
  5. # start启动进程备份 从头开始执行而不是从stop开始
  6. docker container start nginx2 nginx3
  7. # restart 重启
  8. docker container restart -t 60 nginx4
  9. # kill 强制杀死容器
  10. docker container kill nginx5 SIGKILL

移除容器

  1. # prune 移除exit状态的容器
  2. docker container prune
  3. # 删除指定容器
  4. docker container rm nginx4
  5. docker container stop nginx3 && docker container rm nginx3
  6. # 删除exited状态的所有容器
  7. docker rm $(docker ps -a -f status=exited -q)
  8. docker container purge
  9. # https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes

其他指令

  1. # create 创建一个容器但不启动
  2. docker container create --name nginx-test -p 8080:80 nginx
  3. docker container start nginx-test
  4. # port 展示容器的端口映射
  5. docker container port nginx-test
  6. # 查看原始镜像和正在运行的容器之间的差异
  7. # 在容器中创建一个空白文件 方便查看差异
  8. docker container exec nginx-test touch /tmp/testing
  9. # 查看差异
  10. docker container diff nginx-test
  11. # 复制刚刚在容器中创建的文件
  12. docker container cp nginx-test:/tmp/testing testing
  13. # 复制回容器
  14. echo "This is a test of copying a file from the host machine to the container" > testing
  15. docker container cp testing nginx-test:/tmp/testing
  16. docker container exec nginx-test cat /tmp/testing

镜像

  1. # 删除所有悬挂镜像 没有标签的
  2. docker image purge
  3. # -a 删除所有没有使用的镜像