# Docker ###### tags: `docker` `docker-compose` 先附上dockerfile ```dockerfile= FROM python:3.8-slim # 選擇要拉的image,預設的環境是ubuntu RUN pip install --upgrade pip # run前置動作 WORKDIR /app # 選擇作業的資料夾,有順便創建的功能 COPY requirements.txt ./ # 複製本地端的資料到container RUN pip install -r requirements.txt COPY api ./ CMD ["python", "-u", "app.py"] # 執行程式 ``` 只要寫完dockerfile,接下來k8s也可以接著做下去了。 Docker-compose 直接上yaml ```yaml= version: '3' # compose版本 services: proxy_api: # 命名 build: context: . environment: - PROXY_REDIS_CONNECTION_STRING=redis://localhost:6379 ports: - 5000:5000 #綁定container的port及外部環境的port 外:內 restart: always network_mode: aotter_crawler_default # 建立在哪個docker網路上 ``` docker-compose可以省掉原本docker的各種麻煩語法,直接在yaml裡面定義 只要run一個 ``` $ docker-compose up -d --build ``` p.s. -d是不顯示內部log,build是重新建立 就可以解決所有docker語法問題 詳細可見[這裡](https://docs.docker.com/compose/) 如果想從docker內container連接到localhost的話要這樣改 ``` localhost > host.docker.internal ```