FROM scratch #制作基础base image
FROM centos #制作基础base image
备注:尽量使用官方的image作为base image
LABEL maintainer=“test”
LABEL version=“1.0”
LABEL description=“this is description”
备注:image的Metadata 不可少
RUN 执行命令并创建新的Image Layer
RUN yum update && yum install -y vim
python-dev #反斜线换行
RUN apt-get update && apt-get install -y perl
pwgen --no-install-recommends && rm -rf
/var/lib/apt/list/* #注意清理缓存cache
RUN /bin/bash -c ‘source
H
O
M
E
/
.
b
a
s
h
r
c
;
e
c
h
o
HOME/.bashrc;echo
HOME/.bashrc;echoHOME’
备注:1.为了美观,复制的RUN用反斜杠换行 ; 2.避免无用分层,合并多条命令成一行
WORKDIR /test #如果没有会自动创建test目录
WORKDIR demo
RUN pwd #输出结果应该是 /test/demo
备注:1.用WORKDIR,不要用RUN cd; 2.尽量使用绝对目录
ADD test.tar.gz / #添加到根目录并解压
WORKDIR /root
ADD hello test/ #/root/test/hello
WORKDIR /root
COPY hello test/
备注:大部分情况,COPY优于ADD;
ADD除了COPY还有额外的解压功能,添加远程文件/目录使用curl或者wget
ENV MYSQL_VERSION 5.6 #设备常量
RUN apt-get install -y mysql-server= “${MYSQL_VERSION}”
&& rm -rf /var/lib/apt/lists/* #引用常量
备注:尽量使用ENV增加可维护性
CMD 设置容器启动后默认执行的命令和参数,如果docker run 指定了其他命令,CMD命令被忽略,如果定义了多个CMD,只有最后一个会执行
ENTRYPOINT 设备容器启动时运行的命令,让容器以应用程序或者服务的形式运行,不会被忽略,一定会执行
dockerFile常用命令及注意事项
最新推荐文章于 2024-09-11 16:35:09 发布