随笔 - 478  文章 - 0  评论 - 31  阅读 - 57万 

一个简单的示例

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   song.yan  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2019-01-07 js处理时间戳
点击右上角即可分享
微信分享提示