# 使用Dockerfile建立映像檔 ###### tags: `DevOps` Docker 容器內部的各種系統資源(例如儲存、網路等)都是抽象的,我們需要自行定義內部抽象資源與外部實體資源的對應關係,這些設定都是寫在 Dockerfile 這個 Docker 容器的設定檔中 首先在一個空的目錄中,建立一個檔名為 `Dockerfile` 的文字檔 ```dockerfile= # 使用官方的 Python 執行環境作為基本的 Docker 影像 FROM python:2.7-slim MAINTAINER madi <madi@gmail.com> # 設定工作目錄為 /app WORKDIR /app # 複製目前目錄下的內容,放進 Docker 容器中的 /app ADD . /app # 安裝 requirements.txt 中所列的必要套件 RUN pip install -r requirements.txt # 讓 80 連接埠可以從 Docker 容器外部存取 EXPOSE 80 # 定義環境變數 ENV NAME World # 當 Docker 容器啟動時,自動執行 app.py CMD ["python", "app.py"] ``` Dockerfile 需要用到另外兩個檔案,分別為 `requirements.txt` 與 `app.py`,`app.py` 就是我們自己撰寫的 Python 應用程式,而 `requirements.txt` 則是相依套件的列表,請在同一個目錄中建立這兩個檔案。 建立映像檔: ``` $ docker build -t first-demo . // -t: 貼標籤,取好記的名字 // first-demo: 映像檔的名稱 // 注意最後的點,代表執行該目錄下的Dockerfile,以建立image ``` 執行映像檔: ``` $ docker run -p 4000:80 first-demo ``` **本機的port:4000對應到docker的port:80**,打開瀏覽器,輸入`http://localhost:4000` https://blog.gtwang.org/virtualization/docker-basic-tutorial/ 除此之外,也可以利用docker建置 `busybox` 來熟悉Linux指令 [[容器] 容器技術之 Docker 篇 - 指令操作](https://blog.kevinyang.net/2020/07/31/docker-101-note-2/) [Django-Docker容器化部署:Django-Docker本地部署](https://juejin.cn/post/6844903959056891912)