常用命令
镜像
# 搜索镜像docker search nginx# 拉取一个镜像# 默认拉取最新docker pull nginx# 查看本地镜像docker images# 删除镜像# 使用镜像名+tag或镜像IDdocker rmi nginx:latest
容器
# 创建容器docker run -d -it --name nginx01 nginx:latest# 查看容器信息docker inspect nginx01# 停止容器docker stop nginx01# 删除容器docker rm nginx01
Docker-compose
# 根据docker-compose.yml构建docker-compose build# 根据docker-compose.yml启动docker-compose up# 停止根据当前目录下docker-compose.yml文件已构建的容器docker-compose stop# 清除根据当前目录下docker-compose.yml文件已构建的容器docker-compose down
Dockerfile构建
Tips
学会使用.gitignore ,为了提高性能,应该使用.gitignore来过滤掉不需要的文件和目录专注,一个容器只做一件事,将复杂的应用解耦,分成多个容器容器应该轻量化,要能在尽量短的时间内停止、销毁、重建并且替换掉原本的容器
FROM
这个镜像根据什么底层镜像构建
ENV
设置镜像中的环境变量
WORKDIR
设置后续命令执行的工作路径
格式:WORKDIR /path/to/workdir
解释:切换目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。
可以多次切换(相当于cd命令),
也可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如
WORKDIR /aWORKDIR bWORKDIR cRUN pwd
则最终路径为 /a/b/c。
RUN
在构建过程中执行的命令,建议将多个命令使用续行符分行,增加可读性。尽量少的使用多个RUN命令,因为镜像在构建过程中,一个RUN命令会使镜像多出一层(layer)
ADD/COPY
在构建时从本地向容器中复制文件
ADD会自动识别压缩文件格式,将压缩包自动解压
COPY是更为简单的复制方法,如果仅仅是需要复制文件,建议使用
CMD/ENTRYPOINT
CMD中写入在使用这个镜像构建容器时执行的命令,CMD命令会被容器构建时传入的命令替代
ENTRYPOINT中写入的也是容器构建时执行的命令,但是不会被构建时传入的命令代替,命令依然会被执行,构建时自定义命令仅会被作为参数传给ENTRYPOINT将要执行的命令
