Docker 常用命令

  • 搜索镜像 docker search java
  • 下载镜像 docker pull java
  • 查看镜像 docker images
  • 删除镜像 docker rmi hello-world
  • 删除所有镜像 docker rmi -f $(docker images)
  • 基于容器提交镜像 docker commit -m "centos add jdk8" -a "M.Zeng" 8ea45e784e92 zeng/java:8
  • 导出镜像 docker save -o xxx.tar java:8
  • 导入镜像 docker load --input xxx.tar

Docker 容器常用命令

  • 新建启动容器 docker run java
    • -d 表示后台运行
    • -P 随机端口
    • -p 指定端口
      • ip : hostPort : containerPort
      • ip :: containerPort
      • hostPort : containerPort
      • containerPort
    • --name 指定容器运行名称
    • 例如nginx docker run -d -p 80:80 --name=nginx-container nginx
  • 查看容器日志 docker logs CONTAINER ID
  • 查看容器 docker ps
    • -a 所有端口
  • 停止容器 docker stop CONTAINER ID
    • 例如 docker stop 0e64a1525f94
  • 强制停止容器 docker kill CONTAINER ID
  • 启动已停止的容器 docker start CONTAINER ID
  • 重启容器 docker restert CONTAINER ID
  • attach进入容器 docker attach CONTAINER ID
    • 不推荐 多个窗口同时连接时会同步显示
  • exec 进入容器 docker exec -it CONTAINER ID /bin/bash
    • 最为推荐的方式
  • nsenter进入容器
    • 获取PID docker inspect --format “{{.State.Pid}}” CONTAINER ID
    • 进入容器 nsenter --target PID --mount --uts --ipc --net --pid
  • 删除容器 docker rm CONTAINER ID
  • 删除所有容器 docker rmi -f $(docker ps -a -q)
  • 导出容器 docker export -o xxx.tar CONTAINER ID 或者 docker export CONTAINER ID >xxx.tar
  • 导入镜像 docker import xxx.tar - zeng/java:8
  • 停止所有正在运行的容器 docker stop `docker ps -a|awk '{print $1}'`
  • 删除tag为none的镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi
  • 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)