原文再續,就書接上一回。今天咱們說說使用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 | 暴露端口 |