是時候Docker: 4 Dockerfile建立映象容器
阿新 • • 發佈:2019-12-31
Dockerfile建立映象
原文再續,就書接上一回。今天我們說說使用Dockerfile建立映象容器
目錄
- 是時候Docker: 1 Docker導學
- 是時候Docker: 2 安裝並取消sudo執行docker
- 是時候Docker: 3 Docker小例項
- 是時候Docker: 3.1 Docker19 命令速查表
- 是時候Docker: 4 Dockerfile建立映象
- 是時候Docker: 5 Volume 獨立於容器外的持久化儲存
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 | 暴露埠 |