是时候Docker: 4 Dockerfile创建镜像容器

2,530 阅读2分钟

Dockerfile创建镜像

原文再续,就书接上一回。今天我们说说使用Dockerfile创建镜像容器

目录

Dockerfile实例

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

说明

FROM baseimage
MAINTAINER 共享是告诉其他人,是谁写的
CMD 运行命令

实际操作

touch Dockerfile
vim Dockerfile

docker build -t hello_docker .      // -t 构建image名  . 当前目录下所有内容都提交给docker产生image
docker images hello_docker          // 查看image 是否生成
docker run hello_docker             // 运行image, 输出内容 hello docker

复杂一点的实例

FROM ubuntu
MAINTAINER xbf
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 ["/usr/sbin/nginx", "-g", "daemon off;"]
EXPOSE 80
docker build -t test_docker .
docker run -d -p 8080:80 test_docker

镜像分层

Dockerfile的每一行都会产生一个分层且只读,比如

当镜像运行时会产生container layer可读可写的新层来保证容器是可以修改。分层的好处在于,相同分层合并有利减低存储

Dockerfile语法小结

语法 说明
FROM 基础镜像
RUN 容器内执行命令
CMD 程序入口,像main方法一样
ENTRYPOINT 如果指定,CMD会变为它的arguments
ADD 可以添加远程文件,如ftp文件,比copy强大
COPY 拷贝文件
WORKDIR 工作目录
MAINTAINER 作者
ENV 设置容器内环境变量
USER 执行命令的用户,一般是非root
VOLUME 挂在卷
EXPOSE 暴露端口

更多内容下回分解

原创不易,如果你觉得我的文章对你有帮助,请点赞鼓励