镜像和容器相关命令

搜索镜像

  • 使用Docker自带的搜索命令可能会因为网络问题搜索失败
1docker search contains name:vesion
  • 我们可以使用docker search去搜索镜像,也可以去Docker-Hub找自己需要的镜像。(推荐)

下载镜像

1docker pull [镜像仓库地址/]镜像名[:标签]

列出镜像信息

  • docker images [选项]
  • 相关操作
    • 列出镜像的镜像id docker images -q
    • 列出所有镜像的的镜像id docker images -aq 或者 docker images -a -q
    • 列出所有镜像名为mysql的镜像id docker images -aq –filter=reference=mysql

列出容器信息

  • docker ps [选项]默认显示正在运行的容器信息

  • 相关操作

    • 列出当前正在运行的容器 docker ps
    • 列出所有容器,无论是否在运行 docker ps -a
    • 列出所有退出状态的容器 docker ps -f status=exited
    • 列出所有退出状态的容器id docker ps -f status=exited -q

创建并运行容器

  • docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
  • docker stop[ids] 停止容器的运行

容器的运行方式

  • 默认的运行方式 docker run nginx:latest
  • 后台运行 docker run -d nginx:latest
  • 交互式运行 docker run -it nginx:latest bash

删除容器

  • docker rm [选项] [容器ID或容器名…]
  • 相关操作
    • 删除hello-world的容器 docker rm 2d1ec2bba545
    • 尝试删除一个运行的nginx容器 docker rm -f fa8075110f21
    • 尝试删除所有容器 docker rm -f $(docker ps -aq )
    • 尝试删除所有非运行状态的容器 docker ps -f status=exited -q 或者 docker rm $(docker ps -f status=exited -q)

进入容器执行命令

docker exec [选项] 容器ID或容器名 命令 [参数…]

后台运行一个nginx镜像的容器,然后尝试以交互式的方式进入该容器内部执行 curl 指令测试nginx是否启动成功

  • docker exec -it 容器id bash

这个命令是进入正在运行的容器, -it参数是可交互命令行,bash是所使用的命令行方式。

-i 以交互模式运行容器,通常与 -t 同时使用

-t 启动容器后,为容器分配一个命令行,通常与 -i 同时使用

查看容器日志

docker logs[选项]容器ID或容器名

  • 查看容器日志并且是持续输出

​ docker logs -f 容器id

  • 查看容器的最近20条日志

​ docker logs -n 20 容器id

容器文件拷贝

我们可以使用 docker cp 命令来实现容器和宿主机之间 文件和目录的相互拷贝

  • 命令

​ 把容器中的文件拷贝到宿主机中

​ docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

注意开放权限

​ 把宿主机的文件拷贝到容器中

​ docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

停止容器

  • 命令

    docker stop [选项] [容器ID或容器名…]

运行容器

  • 命令

​ docker start [选项] 容器ID或容器名