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

posted @ 2020-08-06 21:55  二狗啸地  阅读(199)  评论(0)    收藏  举报