dockerfile與docker-compose配置

dockerfile構建鏡像

# 該image文件繼承官方的 node image
FROM node:latest

# 指定接下來的工作路徑爲/app
WORKDIR /usr/src/app/

# 拷貝package.json進入image文件的/app目錄
COPY package.json ./

# 安裝依賴
RUN npm install 

# 拷貝全部的文件到app目錄下
COPY ./ ./

# 執行命令
CMD ["npm", "run", "start"]

注意:RUN指令是在鏡像build的時候執行,CMD指令是在鏡像運行成爲容器的時候執行

使用dockerfile創建鏡像

docker build -t myWebApp .
  • -t :指定要創建的目標鏡像名
  • . :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑
  • 運行成功會吐出一個容器id

docker-compose

#Compose 是 Docker 公司推出的一個工具軟件,可以管理多個 Docker 容器組成一個應用
version: '3.1'
services:
    big_data_dev:
      build:
       context: ../
       dockerfile: DockerfileDev
      ports:
       - 81:80
      restart: unless-stopped
      container_name: big_data_dev_container
      image: big_data_dev_image
  • build中context指定設定上下文根目錄,然後以該目錄爲準指定Dockerfile。
  • ports用於映射端口的標籤。
  • 如果前面有了build那image則用來指定鏡像名稱,如果沒有image用來構建鏡像
  • restart重啓策略
no,默認策略,在容器退出時不重啓容器
on-failure,在容器非正常退出時(退出狀態非0),纔會重啓容器
on-failure:3,在容器非正常退出時重啓容器,最多重啓3次
always,在容器退出時總是重啓容器
unless-stopped,在容器退出時總是重啓容器,但是不考慮在Docker守護進程啓動時就已經停止了的容器
  • volumes
volumes:
  // 只是指定一個路徑,Docker 會自動在創建一個數據卷(這個路徑是容器內部的)。
  - /var/lib/mysql
  // 使用絕對路徑掛載數據卷
  - /opt/data:/var/lib/mysql
  // 以 Compose 配置文件爲中心的相對路徑作爲數據卷掛載到容器。
  - ./cache:/tmp/cache
  // 使用用戶的相對路徑(~/ 表示的目錄是 /home/<用戶目錄>/ 或者 /root/)。ro表示只讀
  - ~/configs:/etc/configs/:ro
  // 已經存在的命名的數據卷。
  - datavolume:/var/lib/mysql
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章