dockerfile例子
遇到问题首先参考官方文档:https://docs.docker.com/engine/reference/builder/
一般书写套路
下面是 alpine x86版本,汇编编译环境
from m0elnx/alpine-x86
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache gcc vim gdb make sudo && \
rm /usr/bin/vi && \
ln -s /usr/bin/vim /usr/bin/vi
RUN addgroup -g 1000 asm && \
adduser -h /home/asm -G asm -D -u 1000 asm && \
echo 'asm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
COPY --chown=1000:1000 ./.vimrc /home/asm/.vimrc
USER asm
WORKDIR /home/asm/host
CMD /bin/sh
Dockerfile文件中每一个命令,都在overlayfs上增加了一个只读层
from
表示以哪个image为基础
RUN
后面跟操作命令,可以使用 && 连接多个命令
COPY
用来拷贝文件,可以使用 --chown 选项改变文件的权限。默认是root权限
USER
指定登录默认用户
WORKDIR
指定登录默认目录
CMD
表示 pid 为 1 的进程。如果在容器中,这个pid被kill了,那么,这个容器就退出了
构建
使用 docker build -t {tag} Dockerfile
来构建一个image