常用命令

镜像

  1. # 搜索镜像
  2. docker search nginx
  3. # 拉取一个镜像
  4. # 默认拉取最新
  5. docker pull nginx
  6. # 查看本地镜像
  7. docker images
  8. # 删除镜像
  9. # 使用镜像名+tag或镜像ID
  10. docker rmi nginx:latest

容器

  1. # 创建容器
  2. docker run -d -it --name nginx01 nginx:latest
  3. # 查看容器信息
  4. docker inspect nginx01
  5. # 停止容器
  6. docker stop nginx01
  7. # 删除容器
  8. docker rm nginx01

Docker-compose

  1. # 根据docker-compose.yml构建
  2. docker-compose build
  3. # 根据docker-compose.yml启动
  4. docker-compose up
  5. # 停止根据当前目录下docker-compose.yml文件已构建的容器
  6. docker-compose stop
  7. # 清除根据当前目录下docker-compose.yml文件已构建的容器
  8. docker-compose down

Dockerfile构建

Tips

  1. 学会使用.gitignore ,为了提高性能,应该使用.gitignore来过滤掉不需要的文件和目录
  2. 专注,一个容器只做一件事,将复杂的应用解耦,分成多个容器
  3. 容器应该轻量化,要能在尽量短的时间内停止、销毁、重建并且替换掉原本的容器

FROM

这个镜像根据什么底层镜像构建

ENV

设置镜像中的环境变量

WORKDIR

设置后续命令执行的工作路径
格式:WORKDIR /path/to/workdir
解释:切换目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。
可以多次切换(相当于cd命令),
也可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如

  1. WORKDIR /a
  2. WORKDIR b
  3. WORKDIR c
  4. RUN pwd


则最终路径为 /a/b/c。

RUN

在构建过程中执行的命令,建议将多个命令使用续行符分行,增加可读性。尽量少的使用多个RUN命令,因为镜像在构建过程中,一个RUN命令会使镜像多出一层(layer)

ADD/COPY

在构建时从本地向容器中复制文件

ADD会自动识别压缩文件格式,将压缩包自动解压

COPY是更为简单的复制方法,如果仅仅是需要复制文件,建议使用

CMD/ENTRYPOINT

CMD中写入在使用这个镜像构建容器时执行的命令,CMD命令会被容器构建时传入的命令替代

ENTRYPOINT中写入的也是容器构建时执行的命令,但是不会被构建时传入的命令代替,命令依然会被执行,构建时自定义命令仅会被作为参数传给ENTRYPOINT将要执行的命令