docker - Docker Compose 与 Dockerfile 有什么区别

标签 docker docker-compose dockerfile development-environment boot2docker

我一直在阅读和了解 Docker ,并且正在尝试正确选择要使用的 Django 设置。到目前为止,有一个:

Docker ComposeDockerfile

我知道 DockerfilesDocker Compose 中使用,但我不确定将所有内容放在一个包含多个 FROM 的大型 Dockerfile 中是否是一种好习惯 不同图像的命令?

我想使用几个不同的图像,包括:

uwsgi
nginx
postgres
redis
rabbitmq
celery with cron

请告知使用 Docker 设置此类环境的最佳实践。

如果有帮助,我在 Mac 上,所以使用 boot2docker .

我遇到的一些问题:

  1. Docker Compose 与 Python3 不兼容
  2. 我想将我的项目容器化,所以如果一个大型 Dockerfile 不理想,那么我觉得我需要使用 Docker Compose 来分解它
  3. 我可以让项目 Py2 和 Py3 兼容,所以我倾向于 django-compose

最佳答案

Dockerfile

enter image description here

Dockerfile 是一个简单的文本文件,其中包含用户可以调用来组装镜像的命令。

例如,Dockerfile

FROM ubuntu:latest
MAINTAINER john doe 

RUN apt-get update
RUN apt-get install -y python python-pip wget
RUN pip install Flask

ADD hello.py /home/hello.py

WORKDIR /home

Docker 编写

enter image description here

Docker 编写

  • 是一个用于定义和运行多容器 Docker 应用程序的工具。

  • docker-compose.yml 中定义构成应用程序的服务,以便它们可以在隔离环境中一起运行。

  • 只需运行 docker-compose up

    即可在一个命令中运行应用程序

例如,docker-compose.yml

version: "3"
services:
  web:
    build: .
    ports:
    - '5000:5000'
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
    volumes:
      logvolume01: {}

关于docker - Docker Compose 与 Dockerfile 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29480099/

相关文章:

docker - 如何使用Docker的moby创建定制的容器系统?

docker - 使用 sudo 运行 jenkins 管道代理

typescript - 在 VsCode 中使用附加调试器进行调试时在 Typescript 文件上打断点

docker - 我的docker-compose无法正常工作,并向我显示 “pkg_resources.VersionConflict…”

docker - Docker Slave连接到Docker Gitlab Docker DNS

node.js - Dockerizing 一个 React App : The app starts inside the container, 但它不能从暴露的端口访问

mysql - 如何预配置和预填充官方MySQL docker容器?

docker - 如何使用 docker-solrs 图像扩展机制创建 solr 核心?

Docker 撰写将本地目录映射到 dockerfile 卷

docker - Docker上运行的springboot无法从资源中读取文件