1. 程式人生 > 程式設計 >是時候Docker: 4 Dockerfile建立映象容器

是時候Docker: 4 Dockerfile建立映象容器

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 暴露埠

更多內容下回分解

原創不易,如果你覺得我的文章對你有幫助,請點贊鼓勵