docker cheatsheet

docker

# 不使用缓存重新build
docker build . --no-cache

# tag
docker build -t peterchen0802/mypandoc:latest .
docker tag peterchen0802/mypandoc:latest mypandoc:latest

# 查看容器日志
docker logs SERVICE_NAME [-f]

# 导出容器
# 注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
docker export CONTAINER > TARFILENAME
docker export CONTAINER -o TARFILENAME

# 导入容器
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker import mypandoc.tar peterchen0802/mypandoc:latest  # 指定导入的镜像名称

# -----清理 start-----
## 磁盘容量查看
docker system df

## 清理
docker rmi $(docker images --filter "dangling=true" -q)

## 清理无标签的镜像
docker image prune

## 清理磁盘,删除关闭的容器、无用的数据卷、网络,以及dangling镜像(无tag的镜像)。
docker system prune

## 更彻底的删除,将没有容器使用的镜像删除:
docker system prune -a
# -----清理 end-----

docker-compose

# 指定启动配置文件,可以用docker-compose.dev.yml 区别开发和生产配置
docker-compose -f YML up


# 强制重新build, --build
docker-compose -f YML up --build

# 扩容,如果要临时增加,可以使用`--scale`参数配合`up`指令,接受多个容器传递:
docker-compose up --scale web=2 celery-worker=3

zsh

zsh插件支持docker和docker-compose

Dockfile

用于构建image的文件。

docker-compose.yml

管理和使用docker服务的工具,可以类似vagrant的配置,可以很快的编排需要的services以及networks并启动。

  • docker-compose -f YML-CONF-FILE up,可以指定配置文件启动,这样可以区别正式环境和开发环境的docker
  • up可以是别没有的服务并重新build,也可以用–build强制