帮助文档

  1. $ docker --help
  2. Usage: docker [OPTIONS] COMMAND
  3. A self-sufficient runtime for containers
  4. ... ...
  5. Management Commands:
  6. ...
  7. Commands:
  8. ...

管理命令

Management Commands:
  container   管理容器
  image       管理镜像
  network     管理网络
  node        管理Swarm节点
  plugin      管理插件
  secret      管理Docker secrets
  service     管理服务
  stack       管理Docker stacks
  swarm       管理Swarm集群
  system      查看系统信息
  volume      管理卷

普通命令

Commands:
  attach      将本地标准输入、输出和错误流附着连接到正在运行的容器
  build       使用 Dockerfile 构建镜像
  commit      从容器的更改中创建一个新的镜像
  cp          容器和主机间复制文件或文件夹
  create      创建一个新容器,但不启动它
  deploy      Deploy a new stack or update an existing stack
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        在运行的容器中执行命令
  export      Export a container's filesystem as a tar archive
  history     显示镜像历史记录
  images      查看镜像列表
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     返回Docker对象的底层信息
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        获取一个容器的日志
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          查看容器列表
  pull        从镜像仓库拉取镜像
  push        将本地的镜像上传到镜像仓库(要先登陆到镜像仓库)
  rename      重命名容器
  restart     重启一个或多个容器
  rm          删除一个或多个容器
  rmi         删除一个或多个镜像
  run         创建一个新的容器并运行一个命令
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      从 Docker Hub 搜索镜像
  start       开始一个或多个停止的容器
  stats       实时显示容器CPU、内存等资源使用情况
  stop        停止一个或多个容器
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         查看一个容器中运行的进程信息
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     显示 Docker 的版本信息
  wait        Block until one or more containers stop, then print their exit codes

  运行 'docker COMMAND --help' 查看一个命令的更多信息。

容器

运行

主要用到 run 命令:

$ docker run --help
用法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建一个新的容器并运行一个命令
Options:
... ...

常用 OPTIONS 说明:

-a, --attach list        指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
-d, --detach            后台运行容器,并打印返回容器ID
-i, --interactive        以交互模式运行容器,通常与 -t 同时使用;
-p, --publish list        指定端口映射,格式为“主机端口:容器端口”
-t, --tty                为容器重新分配一个伪输入终端,通常与 -i 同时使用
    --name string        为容器指定一个名称
-h, --hostname string    指定容器的 hostname
-e, --env list            设置环境变量
-m, --memory bytes        设置容器使用内存最大值
    --link list            添加链接到另一个容器
    --expose list        开放一个端口或一组端口
    --restart string    自动重启容器
    --rm                容器退出后,自动删除容器
-v, --volume             绑定一个卷

不加 OPTIONS 相关参数,直接创建容器并运行命令

$ docker run ubuntu:latest echo "Hello Docker!"
Hello Docker!

查看容器

$ docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
afb231371764        ubuntu:latest       "echo 'Hello Docker!'"   6 seconds ago       Exited (0) 5 seconds ago                       nostalgic_gould

交互运行

以交互模式启动一个容器,并在容器内执行 /bin/bash 命令:

$ docker run -it ubuntu:latest /bin/bash
root@e5333463082f:/#

此时,若退出容器的 shell,容器好再次停止运行。

守护运行

除了上述交互式运行容器,可以长期运行的容器,即守护式容器,它非常适合运行应用程序和服务。

$ docker run -d ubuntu:latest /bin/sh -c "while true;do echo hello docker;sleep 1;done"

查看容器的信息

$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                              NAMES
115dd5e895c1        ubuntu:latest         "/bin/sh -c 'while t…"   2 minutes ago       Up 2 minutes

查看日志输出

$ docker logs <CONTAINER>
hello docker
hello docker

<CONTAINER> 为容器 ID 或者 名称。

实时查看容器

$ docker attach <CONTAINER>
hello docker
hello docker
...

其他

进入运行中的容器

$ docker exec -it <CONTAINER> /bin/bash

查看容器

$ docker ps -a

停止容器

$ docker stop <CONTAINER>

重启容器

$ docker restart <CONTAINER>

启动终止的容器

$ docker start <CONTAINER>

删除容器

$ docker rm <CONTAINER>

删除所有容器

$ docker rm $(docker ps -aq)

设置开机自启动容器

$ docker update --restart=always <CONTAINER>

镜像

拉取镜像

$ docker pull python:3.7-alpine

列出镜像

$ docker images

构建镜像

构建 Docker 镜像又以下两种方法:

  1. 使用 docker commit 命令;
  2. 使用 docker build 命令和 Dockerfile 文件。

推荐使用的是第二种方法。