原文再续,就书接上一回。今天咱们说说使用Dockerfile建立镜像容器html
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的每一行都会产生一个分层且只读,好比 nginx
container layer
可读可写的新层来保证容器是能够修改。分层的好处在于,相同分层合并有利减低存储
语法 | 说明 |
---|---|
FROM | 基础镜像 |
RUN | 容器内执行命令 |
CMD | 程序入口,像main方法同样 |
ENTRYPOINT | 若是指定,CMD会变为它的arguments |
ADD | 能够添加远程文件,如ftp文件,比copy强大 |
COPY | 拷贝文件 |
WORKDIR | 工做目录 |
MAINTAINER | 做者 |
ENV | 设置容器内环境变量 |
USER | 执行命令的用户,通常是非root |
VOLUME | 挂在卷 |
EXPOSE | 暴露端口 |