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
    原文作者:ipromise
    原文地址: https://segmentfault.com/a/1190000020361189
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞