起因
现在自己学习微服务,服务器越来越多,虽然自己写了一些shell脚本来安装需要的软件,比如mysql,redis,jdk等等,但是还是好麻烦。希望学习docker能够快速安装部署这些东西。
记录一些学习内容
ADD命令与COPY的区别
建议使用copy,因为是字面意思的命令,而add命令会有一些额外操作,比如如果add的是一个tar压缩包,压缩格式为 gzip , bzip2 以及 xz 的情况
下,就会解压,其他压缩包就不会,如果是个url,也会把资源下载下来。所以不同情况下的操作不太一样,除非解压缩tar的情况。
ENTRYPOINT
docker run 镜像名 参数
这个时候参数会覆盖CMD命令里的参数
而如果使用的是entrypoint执行命令的话,参数是作为额外的参数传给cmd的
ENV
相当于可以定义变量
ENV VERSION=1.0 DEBUG=on
NAME="Happy Feet"
然后使用$VERSION就可以啦
WORKDIR
RUN cd /app
RUN echo "hello" > world.txt
每个run都是在各自的层执行的,所以第一个cd并不会切换目录
应该使用workdir来切换工作目录