docker build

docker build [options] .
  -t, --tag "app/container_name"    # 名称和可选格式的标签
  --build-arg APP_HOME=$APP_HOME    # 设置构建时变量
  --file,-f                         # Dockerfile 的名称
  --pull                            # 始终尝试拉取更新版本的镜像

例子

docker build --pull -f "Dockerfile" -t cheatsheets:latest "." 

从 Dockerfile 创建镜像

docker run

docker run [options] IMAGE
  # 见 `docker create` 中的选项

例子

docker run -it debian:buster /bin/bash

在镜像中运行一个命令。

容器 Container

docker create

docker create [options] IMAGE
  -a, --attach               # 附加到 STDIN、STDOUT 或 STDERR 上
  -i, --interactive          # 附加标准输入 STDIN(交互式)
  -t, --tty                  # 伪终端
      --name NAME            # 为容器指定一个名称
  -p, --publish 5000:5000    # 端口映射(主机:容器)
      --expose 5432          # 将端口暴露给链接的容器
  -P, --publish-all          # 发布所有端口
      --link container:alias # 添加到另一个容器的链接
  -v, --volume `pwd`:/app    # 挂载(需要绝对路径)
  -e, --env NAME=hello       # 环境变量
      --restart              # 容器退出时要应用的重启策略

例子

docker create --name app_redis_1 \
  --expose 6379 \
  redis:3.0.2

从镜像中创建一个容器

docker exec

docker exec [options] CONTAINER COMMAND [ARG...]
  -d, --detach        # 在后台运行
  -i, --interactive   # 标准输入
  -t, --tty           # 交互式终端

例子

docker exec -it mynginx /bin/sh /root/runoob.sh
docker exec -it 9df70f9a0714 /bin/bash

在容器中运行一条命令,或开启一个交互模式的终端

docker start

docker start [options] CONTAINER
  -a, --attach        # 附加 STDOUT/STDERR 和转发信号
  -i, --interactive   # 附加容器的标准输入 STDIN

docker stop [options] CONTAINER
  -s, --signal        # 发送给容器的信号
  -t, --time          # 停止容器前要等待的秒数

docker restart [OPTIONS] CONTAINER
  # 见 `docker stop` 中的选项

docker pause CONTAINER     # 暂停一个或多个容器中的所有进程
docker unpause CONTAINER   # 解除一个或多个容器内所有进程的暂停状态

启动或停止一个容器

docker ps

docker ps [OPTIONS]
  -a, --all            # 显示所有容器(默认只显示正在运行的容器)
  -q, --quiet          # 只显示容器的ID
docker ps -a
docker kill $ID    # 关闭一个或多个正在运行的容器

使用 ps/kill 管理容器

docker logs

docker logs $ID
docker logs $ID 2>&1 | less
docker logs -f $ID    # 跟踪日志输出

看看在一个容器中记录了什么

镜像 Images

docker images

docker images
  REPOSITORY   TAG        ID
  ubuntu       12.10      b750fe78269d
  me/myapp     latest     7b2431a8d968
docker images -a   # 列出所有镜像(包含中间镜像层)
docker images -q   # 只显示镜像id
docker search [OPTIONS] CONTAINER    # 搜索Docker Hub中的镜像
  --no-trunc         # 显示完整的镜像信息
docker pull [OPTIONS] NAME[:TAG|@DIGEST]    # 下载镜像

管理镜像

docker rmi

docker image rm [OPTIONS] IMAGE
  -f                  # 强制删除    
docker rmi [OPTIONS] IMAGE       # 删除镜像(docker image rm的简化写法)
  # 见 `docker image rm` 中的选项
docker rmi `docker images -q`    # 删除所有的镜像

删除镜像

清理

清理所有

docker system prune

清理挂起的镜像、容器、数据卷和网络(即与容器无关的)

docker system prune -a

另外删除任何停止的容器和所有未使用的镜像(不仅仅是挂起的镜像)

容器

# 停止所有正在运行的容器
docker stop $(docker ps -a -q)

# 删除已停止的容器
docker container prune

镜像

docker image prune [-a]

删除所有的镜像

数据卷

docker volume prune

删除所有数据卷

另请参见

0 Comments 为了完善这份速查表。 写下你的评论吧!