1 容器操作

  • run
  • attch
  • exec
  • ps
  • start / restart
  • logs
  • kill
  • top

    run

    docker run 用来通过镜像启动一个容器。这个可以算是操作 docker 容器的核心命令了,参数及其丰富,多达 91 个参数

    1. docker run
    2. -p 80:80 本地的端口:容器的端口
    3. -d 后台运行
    4. -v /Users/lovepenny/docker/nginx:/usr/share/nginx/html 本机的目录:容器的目录
    5. -e MYSQL_ROOT_PASSWORD=123456 设置环境变量
    6. --name nginx 设置名字
    7. --link link 后面跟一对映射的值,左侧的为已经存在的 Docker 容器,右侧的为该容器映射到我们启动的 Docker 应用中的 host 名字,
    8. nginx:latest 容器名字

    官方文档
    几个重要的参数

  • —interactive 等同于 -i ,接受 stdin 的输入;

  • —tty 等同于 -t,分配一个 tty,一般和 i 一起使用;
  • —name 给容器设置一个名字;
  • —add-host 给容器设置 hosts 文件,格式 host:ip;
  • —env 环境变量设置;
  • —expose 暴露端口;
  • —hostname 设置容器的主机名;
  • —link 容器网络相关,和其他的 container 连接;
  • —cpu-quota 设置 CPU 限制;
  • —memory 设置容器可以使用的内存限制。

    attch

    docker attach 让我们可以进入到一个运行着的容器的内部,这个命令的原理是给一个正在运行的容器分配一个 stdin、stdout 和 stderr。
    需要注意的是,如果 docker attach 之后要退出的话,不能使用 exit,使用 exit 原容器也会退出。我们可以使用 Ctrl + C 的方式退出。

    exec

    docker exec 命令也可以达到 attach 的目的。exec 命令的用处是在一个运行着的容器里面执行一个命令。关于这个命令的原理其实很简单,在 Linux 内核层面,相当于 fork 了一个进程,然后这个进程设置和容器相同的 NameSpace。如果我们 OPTIONS 指定 -ti ,那么我们就可以进入到一个运行着的容器里面执行命令了。因为这个是一个 fork 出来的进程,所以可以 exit。

    ps

    列出正在运行的容器

  • -a 列出所有容器

    kill

    docker kill 用来 kill 一个或者一组 container。

    logs

    docker logs 用来获取 docker 的 log。

    top

    docker top 查看一下运行这个容器在宿主机上面的进程,

    2 镜像操作

  • images

  • build
  • commit
  • history
  • save
  • import / load
  • rmi
  • tag

    images

    列出本地所有镜像,官方文档

    build

    通过dockerfile build出镜像

    commit

    对容器做了一些改变,想把这些改变存储下来,形成新的镜像。在生产环境中,不能使用。订制镜像应使用dockerfile。
    关于commit的文章 官方文档

    history

    查看镜像的历史

    save

    当需要将镜像导入另一台镜像时,由于安全性或者镜像本身比较大的原因不适合先push 再pull。此时可以将镜像先导出成压缩文件,然后再将压缩文件导入到另外一个机器
    使用docker save将镜像导出成压缩文件。

    import / load

    都是用来从压缩中导入镜像。

    rmi

    删除镜像

  • -f 强制删除

    tag

    可以用来给镜像打tag