如何运行本地的,Docker化的应用程序AWS EC2?

时间:2019-10-23 17:01:20

标签: amazon-web-services docker amazon-ec2 amazon-ecr

  • 我已经在本地计算机上实现了一个dockerized应用,我想将其部署到AWS中。
  • 我已为我的docker主应用程序选择了EC2,为我的数据库和ECR选择了RDS,以便将本地docker映像传递到我的EC2实例。

在我的本地计算机上,我拥有此文件以便创建用于开发的docker映像

docker-compose.yml:

version: '2'<br>
services:<br>
  nginx:<br>
    container_name: nginx-angular<br>
    image: nginx-angular
    build:
      context: ./frontend
      dockerfile: /.docker/nginx.dockerfile
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web

  web:
    container_name: django-app
    build:
      context: ./backend
      dockerfile: /django.dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      PROD_ENV_FRONTEND_BASE_URL: http://192.168.99.100/
      MODE_ENV: PROD

  db:
    container_name: django-db
    image: postgres:10

当我构建应用程序(docker-compose构建)时,正在创建7个docker映像,而当我运行应用程序(docker-compose up)时,正在运行3个容器(yml文件中的每个服务1个) 。

第一季度
我必须通过ECR传递EC2,只有与运行中的容器相对应的3个图像,还是所有7个图像?

请注意,在EC2中,我为数据库使用RDS而不是docker容器。
因此,这是yml,用于创建要发送到EC2的docker映像:

docker-compose-aws.yml:

version: '2'
services:
  nginx:
    container_name: nginx-angular
    image: nginx-angular
    build:
      context: ./frontend
      dockerfile: /.docker/nginx.dockerfile
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web

  web:
    container_name: django-app
    build:
      context: ./backend
      dockerfile: /django.dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    environment:
      PROD_ENV_FRONTEND_BASE_URL: <wy_web_app_domain>
      MODE_ENV: PROD_AWS
      DB_USER: postgres_user
      DB_NAME: postgres_db
      DB_PASSWORD: <db_password>
      DB_HOST: <host_of_my_RDS_DB>

第二季度
无论如何,如何在AWS EC2中运行我的应用程序?我是否要创建一个新的“ .yml”文件,以使用已经通过ECR传递给EC2的图像?

0 个答案:

没有答案