Доступ к двум контейнерам из браузера

#amazon-web-services #docker #amazon-ec2 #containers

#amazon-веб-сервисы #docker #amazon-ec2 #контейнеры

Вопрос:

Я запустил экземпляр EC2 ubuntu, и группа безопасности для этого экземпляра разрешает 22 80 443 порта из 0.0.0.0 / 0. Теперь я установил docker на этот экземпляр EC2.Затем я создал контейнер apache2, а также сопоставил порт для доступа из браузера, используя приведенную ниже команду

       sudo docker run -p 80:80 -t -i ubuntu /bin/bash
  

Затем я создаю конфигурацию lampstack и пытаюсь сопоставить порт, используя приведенную ниже команду

       sudo docker run -p 443:443 -t -i linode/lamp /bin/bash
  

Теперь docker ps дает мне следующее

  CONTAINER ID  IMAGE       COMMAND      CREATED STATUS   PORTS   Name      
 d0751e67fd69  linode/lamp "/bin/bash"  4 min   Up 4   0.0.0.0:443>443/tcp   
                                                    affectionate_hamilton
 0fb4e13a272a  ubuntu       "/bin/bash"  11 minutes     0.0.0.0:80->80/tcp     
                                                      vigorous_robinson
  

Когда я беру общедоступный IP-адрес моего компьютера EC2 и помещаю в браузер, я вижу страницу apache, но как я могу оценить свою страницу Lampstack?

Пожалуйста, поправьте меня, если я неправильно сопоставил порты

Комментарии:

1. Я думаю, вам следует написать @IP: 443 для доступа к нему или, https://@IP

2. @MehdiBenmesssaoud я пытался, но безуспешно

3. @AWS_Beginner что такое o / p?

4. @AWS_Beginner Попробуйте изменить открытый порт 443 на 8080, например

5. Порт 443 по умолчанию используется для трафика HTTPS. Какой тип трафика установлен для порта 443 в вашей группе безопасности?

Ответ №1:

Вам нужен только контейнер LAMP, и в нем вы должны сопоставить порт 80:

 sudo docker run -d --name lamp -t -p 80:80 linode/lamp top
  

Убедитесь, что контейнер запущен:

 sudo docker ps --filter name=lamp
  

Теперь запустите службы:

 sudo docker exec -ti lamp service apache2 start
sudo docker exec -ti lamp service mysql start
  

Протестируйте свою настройку с хоста:

 curl http://localhost
  

Если вы хотите протестировать соединение из другого контейнера, вы можете запустить отдельный контейнер Ubuntu, который ссылается на ваш исходный контейнер «lamp»:

 docker run -ti --rm --link lamp --name ubuntu-box ubuntu bash
  

Внутри контейнера установите curl и протестируйте соединение:

 apt update amp;amp; apt-get install curl -y
curl http://lamp
  

Комментарии:

1. Спасибо за ваши комментарии. Первый контейнер — ubuntu, в котором я устанавливаю apache. И это не какая-либо задача, поскольку я хочу изучить docker, поэтому я пытался получить доступ к двум разным контейнерам, которые присутствуют на одном хосте, поэтому здесь мне нужны оба контейнера.

2. В вашем посте никогда не упоминалось об этом. Я добавил ответ для реализации этого сценария. Я надеюсь, что теперь вы можете протестировать соединение между 2 контейнерами.