是時候Docker: 4 Dockerfile建立鏡像容器

Dockerfile建立鏡像

原文再續,就書接上一回。今天咱們說說使用Dockerfile建立鏡像容器html

目錄

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的每一行都會產生一個分層且只讀,好比 nginx

當鏡像運行時會產生 container layer可讀可寫的新層來保證容器是能夠修改。分層的好處在於,相同分層合併有利減低存儲

Dockerfile語法小結

語法 說明
FROM 基礎鏡像
RUN 容器內執行命令
CMD 程序入口,像main方法同樣
ENTRYPOINT 若是指定,CMD會變爲它的arguments
ADD 能夠添加遠程文件,如ftp文件,比copy強大
COPY 拷貝文件
WORKDIR 工做目錄
MAINTAINER 做者
ENV 設置容器內環境變量
USER 執行命令的用戶,通常是非root
VOLUME 掛在卷
EXPOSE 暴露端口

更多內容下回分解

原創不易,若是你以爲個人文章對你有幫助,請點贊鼓勵

相關文章
相關標籤/搜索