Docker 常用命令(二)

Scroll Down

Docker 镜像常用命令

  • 搜索镜像
    可使用 docker search 命令搜索存放在 Docker Hub 中的镜像。例如: docker search java 执行该命令后, Docker 就会在 Docker Hub 中搜索含有 java 这个关键词的镜像仓库。执行该命令后,可看到类似于如下的表格:

    该表格包含五列,含义如下。
  • NAME :镜像仓库名称。
  • DESCRIPTION :镜像仓库描述。
  • STARS :镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub 的 Stars 。
  • OFFICIAL :表示是否为官方仓库,该列标记为 [OK] 的镜像均由各软件的官方项目组创建和维护。由结果可知,前8个镜像仓库是官方仓库,而其他的仓库都不是镜像仓库。
  • AuTOMATED :表示是否是自动构建的镜像仓库。
  • 下载镜像
    使用命令 docker pull 命令即可从 Docker Registry 上下载镜像,例如: docker putl j ava 执行该命令后, Docker 会从 Docker Hub 中的 Java 仓库下载最新版本的 Jaya 镜像。若镜像下载缓慢,可配置镜像加速器,Docker 简单入门(一)。该命令还可指定想要下载的镜像标签以及 Docker Registry 地址,例如: docker pull reg.itmuch.com/java:7 这样就可以从指定的 Docker Registry 中下载标签为 7 的 Java 镜像。
  • 列出镜像
    使用 docker images 命令即可列出已下载的镜像。执行该命令后,将会看到类似于如下的表格:

    该表格包含了 5 列,含义如下。
  • REPOSITORY :镜像所属仓库名称。
  • TAG :镜像标签。默认是 latest ,表示最新。
  • IMAGE ID :镜像 ID ,表示镜像唯一标识。
  • CREATED :镜像创建时间。
  • SIZE :镜像大小
  • 删除本地镜像
    使用 docker rmi 命令即可删除指定镜像。

    例1 :删除指定名称的镜像。
    doCker rmi hello-world 表示删除 hello-world 这个镜像。
    例 2 :删除所有镜像。
    docker rmi -f $(docker images)
    -f 参数表示强制删除。

Docker 容器的常用命令

  1. 新建并启动容器
    使用一下docker run 命令即可新建并启动一个容器。
    该命令是最常用的命令,它有很多选项下面将列举一些常用的选项:
    -d选项:表示后台运行
    -P选项:随机端口映射
    -p选项:指定端口映射,有以下四种格式。
    ip: hostPort: containerPort
    p: containerport
    hostPort: containerPort
    container port
    network选项:指定网络模式,该选项有以下可选参数:
    --network=bridge:默认选项,表示连接到默认的网桥。
    --network=host:容器使用宿主机的网络。
    --network=container:NAME_or_ID:告诉 Docker让新建的容器使用已有容器的网络配置
    --network=none:不配置该容器的网络,用户可自定义网络配置。
    示例1
    docker run java /bin/echo 'Hello World'
    

    这样终端会打印 Hello world的字样,跟在本地直接执行/bin/echo" Hello World"一样。
    示例2:

    docker run -d-p 91: 80 nginx
    

    这样就能启动一个Ngnx容器。在本例中,为 docker run添加了两个参数,含义如下:
    -d # 后台运行
    -p宿主机端口:容器端口 # 开放容器端口到宿主机端口
    访问htt: Docker宿主机IP:91/

    需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。

  2. 列出容器
    使用 docker ps命令即可列出运行中的容器执行该命令后,可看到类似于如下的表格。

    如需列出所有容器(包括已停止的容器),可使用-a参数。
    该表格包含了7列,含义如下。
    CONTAINER ID:表示容器I。
    MAGE:表示镜像名称。
    COMMAND:表示启动容器时运行的命令。
    CREATED:表示容器的创建时间。
    STATUS:表示容器运行的状态。U表示运行中, Exited表示已停止
    PORTS:表示容器对外的端口号。
    NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run 命令的-name选项自行指定。
  3. 停止容器
    使用 docker stop命令,即可停止容器。例如
docker stop 784fd3b294d7

中784635294d7是容器ID,当然也可使用 ocker stop容器名称来停止指定容器。
4. 强制停容器
可使用 docker kill命令发送 SIGKILL信号来强制停止容器。例如:

docker kill 784fd3b294d7
  1. 启动已停止的容器
    使用 docker run命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker start命令来启动。例如:
docker start 784fd3b294d7
  1. 重启容器
    可使用 docker restart命令来重启容器。该命令实际上是先执行了 locker stop命令,然后执行了 docker start 命令。
  2. 进入容器
docker container exec -i -t 容器ID /bin/bash
  1. 删除容器
    使用 docker rm 命令即可删除看定溶器。
    例1:删除指定容器。
docker rm 784fd3b294d7

该命令尽能删除已停止的容器,如需删除正在运行的容器,可使用 -f 参数。
例2:删除所有的容器。

docker rm -f $(docker ps -a -q)

学习于:《Spring Cloud与Docker 微服务架构实战》 — 周立