您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
j0785 发布于2022年12月26日 17:49 最近更新于 2022年12月27日 16:24

原创 Docker 常用命令说明使用详解

839 次浏览 读完需要≈ 13 分钟 Docker

内容目录

状态相关命令

  • docker version 查看docker的版本信息
  • docker info 查看docker的详细信息

镜像相关命令

  • 查看本地已安装的镜像信息

    • docker images -a 显示全部的镜像信息

      C:\Users\Shinelon>docker images -a
      REPOSITORY     TAG                 IMAGE ID       CREATED         SIZE
      php            8.0-fpm             3bc0db9dafd4   3 weeks ago     445MB
    • docker images 显示全部的镜像信息(等同于docker images -a)

      C:\Users\Shinelon>docker images
      REPOSITORY      TAG               IMAGE ID       CREATED         SIZE
      php             8.0-fpm           3bc0db9dafd4   3 weeks ago     445MB
    • docker images -q 只显示所有镜像的IMAGE ID

      C:\Users\Shinelon>docker images -q
      3bc0db9dafd4
      3842e9cdffd2
  • docker search php 搜索查询Dokcer仓库(docker hub)镜像

    NAME       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    php        While designed for web development, the PHP …   6943      [OK]
  • docker pull php:8.0-fpm 拉取Dokcer仓库镜像到本地镜像库

    :8.0-fpm是镜像版本号,不加版本号则表示拉取Docker仓库中最新版(也可以用:latest表示拉取最新版)

  • 删除本地镜像

    • 删除单个镜像

      docker rmi 镜像名/镜像ID

    • 强制(-f)删除多个镜像 (*多个镜像ID或镜像需要用空格分隔)

      docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

    • 删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID

      docker rmi -f $(docker images -a)

  • 将镜像保存为本地文件

    docker save -o 镜像文件的保存位置和名字 镜像名称/镜像ID

  • 加载本地文件并恢复为本地镜像

    docker load -i 镜像文件的保存位置和名字

  • 上传本地镜像到Docker仓库

    docker push myimage:1.0

容器相关命令

  • 查看容器列表

    • docker ps 查看正在运行中的容器列表

      C:\Users\Shinelon>docker ps
      CONTAINER ID   IMAGE   COMMAND                  CREATED       STATUS          PORTS                               NAMES
      9a9ec12192d9   redis   "docker-entrypoint.s…"   3 weeks ago   Up 31 minutes   0.0.0.0:6380->6379/tcp              myredis
    • docker ps -a 查看所有的容器列表(运行中的+已停止运行的)

      C:\Users\Shinelon>docker ps -a
      CONTAINER ID   IMAGE                                   COMMAND                  CREATED       STATUS                     PORTS                               NAMES
      3ff697ea196b   hyperf/hyperf:7.4-alpine-v3.11-swoole   "/bin/sh"                12 days ago   Exited (255) 11 days ago   0.0.0.0:9502->9502/tcp              myhyperf                                       myswoole
      9a9ec12192d9   redis                                   "docker-entrypoint.s…"   3 weeks ago   Up 32 minutes           
  • 创建容器

    docker run -dit --name=容器名称 -p 宿主机端口号:容器端口号 -v 宿主机目录:服务器目录 –privileged -e 环境变量名称=“环境变量值” --net=netname --restart=重启策略 --link 关联的容器名称:关联的容器在link下的别名 镜像名称:镜像版本

    • -i 以交互模式运行容器,通常与 -t 同时使用
    • -t 启动容器后,为容器分配一个命令行,通常与 -i 同时使用
    • -d 守护进程,后台运行该容器
    • -p 指定端口映射,格式:主机(宿主)端口:容器端口
    • -v 目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录>
    • --name=容器名称 为容器指定一个名称
    • -e 环境变量名称=“环境变量值” 设置环境变量
    • –restart=重启策略 设置容器的重启策略
    • –privileged 容器内是否使用真正的 root 权限
    • -u root 使用root用户身份创建容器
    • --net=netname   指定容器的局域网
  • 停止运行容器

    docker stop 容器名称/容器ID

  • 运行容器

    • 运行已停止的容器 docker start 容器名称/容器ID
    • 重启容器 docker restart 容器名称/容器ID
  • 删除容器(容器删除之前需要停止容器运行)

    docker rm 容器名称/容器ID

  • 进入运行中容器

    • docker attach 容器名称/容器ID (不建议使用,从当前容器退出会导致容器停止运行)
    • docker exec -it 容器名称/容器ID /bin/bash (推荐使用,从当前容器退出会退出容器终端,但不会导致容器停止运行)
  • 复制文件到容器

    • 从容器内复制文件到容器外部

      docker cp 容器名称/容器ID: 容器内路径 容器外路径

    • 从容器外部复制文件到容器内部

      docker cp 容器外路径 容器名称/容器ID: 容器内路径

  • 容器名重命名

    docker rename 容器名称/容器ID 新的容器名

  • 更新容器参数

    • 更新容器启动策略: docker update --restart=always 容器名称/容器ID

局域网相关命令

  • docker network ls 查看Docker局域网列表
  • docker network create 局域网名称 创建一个Docker局域网
  • docker network inspect 局域网名称 显示一个或多个Docker局域网的详细信息,多个局域网使用空格分隔
  • docker network connect 局域网名称 容器名称 将一个容器加入某个Docker局域网内
  • docker network disconnect 局域网名称 容器名称 将一个容器从某个Docker局域网内断开连接/移除
  • docker network prune 删除所有未使用的Docker局域网
  • docker network rm 局域网名称 删除指定的一个或多个Docker局域网,多个局域网使用空格分隔
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论