一个简单的示例

FROM alpine:latest
MAINTAINER songyan
CMD echo 'hello docker'

创建镜像

docker build -t hello_docker -f test.dockerFile .

运行这个镜像

docker run hello_docker

稍微复杂的DockerFile(nginx)

FROM ubuntu
MAINTAINER songyan
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["nginx","-g","daemon off;"]
EXPOSE 80
进入一个容器
docker exec -it  92b39e94ac0f /bin/bash

删除所有容器

docker rm  $(docker  container  ls   -a  -q)

 

小结:

FROM:base image(指定一个基础镜像)

RUN:在容器内执行一个命令

ADD:往容器内添加一个文件【还可以将远程的文件/目录加入到容器】

COPY:往容器内拷贝一个文件【文件/目录】

CMD:给容器指定一个入口

ENTRYPOINT:给容器指定一个入口

EXPOSE:指定要暴露的端口

WORKDIR:指定路径

MAINTAINER:维护者

ENV:设置环境变量

USER:指定执行该命令的用户

VOLUMN:指定容器挂载的卷

 

docker镜像是分层被存储的

dockerfile里面每一行都对应一层 

存在于image里面的层都是只读的,镜像被运行产生的一个容器的时候会产生一个新层(容器层),这一层是可读可写的,从而保证容器可变

 

posted on 2023-01-07 12:04  song.yan  阅读(10)  评论(0编辑  收藏  举报