Ответы пользователя по тегу Docker
  • Как лучше организовать структуру сервера на aws с docker контейнерами?

    Yeah
    @Yeah
    Так как в вопросе фигурирует AWS, то и поднимать все нужно с учетом сервисов, которые предоставляет AWS. Никаких трех контейнеров на инстанс!
    Итак, по пунктам:

    1. Для начала поднимаем и настраиваем VPC. Соевую заюзать готовый шаблон для Cloudformation. их можно легко найти на Github
    2. БД - AWS RDS - легко сетапится, можно с репликацией, можно без
    3. для API поднимаем Elastic Beanstalk с load balancer
    4. статику грузим в S3
    5. к S3 со статикой прикручиваем Cloudfront - в качестве CDN, так как раздача статики с S3 дороже, чем с Cloudfront
    6. Настраиваем Route53: корневой домен через ALIAS -> Cloudfront, api.domain.com, через CNAME на URL от Elasticbeanstalk


    Итого: нужен только один докер контейнер - для API.
    Ответ написан
    Комментировать
  • Как запустить docker в virtualbox?

    Yeah
    @Yeah
    Я для этого использовал docker-compose и соответствующий плагин для vagrant.

    Сначала делаем vagrant plugin install vagrant-docker-compose

    Потом Vagrantfile:

    Vagrant.configure("2") do |config|
      config.vm.box = "debian/jessie64"
    
      config.vm.synced_folder "./", "/vagrant", type: "nfs"
    
      config.vm.provider "virtualbox" do |vb|
        vb.memory = "2048"
      end
    
      config.vm.network :private_network, ip: "192.168.88.88"
      config.vm.network :forwarded_port, guest: 22, host: 2388
      config.vm.network :forwarded_port, guest: 2375, host: 2375
      config.vm.network :forwarded_port, guest: 2376, host: 2376
    
      config.vm.provision "shell", inline: <<-SHELL
        mkdir -p /etc/systemd/system/docker.service.d
        echo "[Service]" > /etc/systemd/system/docker.service.d/docker.conf
        echo "ExecStart=" >> /etc/systemd/system/docker.service.d/docker.conf
        echo "ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375" >> /etc/systemd/system/docker.service.d/docker.conf
      SHELL
      config.vm.provision :docker
      config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", run: "always", rebuild: true,
        options: "-H tcp://0.0.0.0:2375"
    end


    И наконец docker-compose.yml:

    version: '2'
    services:
      php:
        container_name: php7
        image: php:7.0-fpm-alpine
        ports:
          - "9000:9000"
        links:
          - db
        volumes:
          - /var/www/:/var/www/
    
      web:
        container_name: web
        image: nginx:latest
        ports:
          - "80:80"
          - "443:443"
        links:
          - php
          - adminer
        volumes:
          - ./environment/${ENV}/nginx:/etc/nginx/conf.d
          - /var/www/:/var/www/
    
      db:
        container_name: db
        image: mysql:5.6
        ports:
          - "3306:3306"
        volumes:
          - ./environment/${ENV}/mysql/data:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
          - MYSQL_DATABASE=${MYSQL_DATABASE}
    
      adminer:
        image: adminer:fastcgi
        container_name: adminer
        links:
          - db


    vagrant up - вуаля, все работает
    Ответ написан
    Комментировать