Огляд проекту: Level Up Solutions — це технологічна компанія, яка хоче впровадити Docker для покращення розгортання веб-додатків. Ця технологія дозволяє упаковувати, розповсюджувати та запускати додатки однаково в різних середовищах. Docker має багато переваг, таких як послідовність, портативність, ізоляція, відтворюваність, контроль версій, масштабованість і покращена співпраця, що спрощує процеси розробки та розгортання.
Попередні вимоги:
◉ Ubuntu EC2 інстанс — ознайомтесь з моєю попередньою документацією, щоб створити інстанс EC2 покроково.(Click Here)
● Після того, як наш EC2 інстанс буде створений, ми можемо підключитися до нього через SSH і почати. Спочатку необхідно перейти в директорію, куди було завантажено вашу пару ключів. Потім ви можете підключитись до інстансу за допомогою команди AWS... Ми всередині💻
sudo docker pull ubuntu:latest
● Тепер нам потрібно витягнути останній образ з реєстру Docker, щоб використовувати його для нашого контейнера.
docker run -it -d -p 80:80 ubuntu
sudo docker container ls
● На цьому етапі ми витягуємо образ Ubuntu та запускаємо контейнер, який буде відокремлений, і використовуємо порт 80. Після цього можна виконати іншу команду, щоб перевірити, чи був створений наш контейнер і який порт використовується. Це спрацювало!
sudo docker exec -it sweet_poitras bash
apt-get update && apt-get upgrade -y
apt-get install apache2 -y
● Наша перша команда використовується для запуску нової сесії bash всередині вже працюючого Docker контейнера з іменем sweet_poitras.
● Далі моя друга команда оновить всі пакети всередині контейнера, щоб усе було актуальне.
● І остання команда — для встановлення Apache Version 2.
service apache2 start
● Час запускати веб-сервер Apache.
apache2 -v
● Я використовую цю команду, щоб перевірити, яку версію використовує мій сервіс Apache, це просто для перевірки правильної версії.
● Тепер ми можемо перейти до нашого Ubuntu EC2 інстансу на AWS Console і скопіювати публічну IP-адресу.
● Коли ви вставите публічну IP-адресу в пошуковий рядок на іншій вкладці, ви повинні побачити стандартну сторінку Apache2. Це просто перевірка, що мої команди працюють, і ми можемо тестувати по ходу процесу, щоб переконатись, що все працює правильно.
● Після того як я побачив, що моя тестова веб-сторінка працює, я вирішив створити власну веб-сторінку!
Мета: Push до Docker Hub.
𝟐𝐧𝐝 𝐎𝐛𝐣𝐞𝐜𝐭𝐢𝐯𝐞: 𝐏𝐮𝐬𝐡 𝐭𝐨 𝐃𝐨𝐜𝐤𝐞𝐫 𝐇𝐮𝐛 𝐚𝐧𝐝 𝐩𝐮𝐥𝐥 𝐲𝐨𝐮𝐫 𝐧𝐞𝐰 𝐢𝐦𝐚𝐠𝐞 𝐚𝐧𝐝 𝐫𝐮𝐧 𝐨𝐧 𝐚 𝐝𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐭 𝐩𝐨𝐫𝐭 𝐭𝐡𝐚𝐧 𝟖𝟎 𝐰𝐡𝐢𝐥𝐞 𝐬𝐭𝐢𝐥𝐥 𝐦𝐚𝐩𝐩𝐢𝐧𝐠 𝐭𝐨 𝟖𝟎 𝐨𝐧 𝐭𝐡𝐞 𝐜𝐨𝐧𝐭𝐚𝐢𝐧𝐞𝐫. Використовуємо Docker scout для виявлення вразливостей.
docker login
● Я переключився на VSCODE, оскільки навчився швидше підключатись до інстансу через “ssh”.
Ми збираємось запушити наш контейнер до Docker Hub, тому нам потрібно увійти в Docker через термінал.
● Коли ви натискаєте на посилання, яке надається Docker в вашому терміналі, скопіюйте і вставте це посилання в браузер, і з'явиться активація Docker Device. Введіть 8-значний код, який Docker надав у терміналі.
docker tag ubuntu leonthelion22/dockerpurplerepo2025
docker push leonthelion22/dockerpurplerepo2025
docker pull leonthelion22/dockerpurplerepo2025
docker run -d -p 81:80 leonthelion22/dockerpurplerepo2025
● Якщо ви увійшли правильно, Docker повідомить, що це вдалося.
● Команда Docker tag дає змогу позначити існуючий Docker-образ новим іменем, але він залишатиметься тим самим образом, це корисно для того, щоб запушити образ до мого репозиторію на Docker Hub.
● Docker push дозволяє запушити Docker-образ до реєстру Docker, в даному випадку до мого облікового запису на Docker Hub.
● Docker pull дозволить мені витягнути цей Docker-образ на мою локальну машину.
● І, нарешті, Docker run запустить Docker-контейнер, в даному випадку він буде відокремлений, і я використовую інший порт 81, який є портом моєї хост-машини, а порт 80 — це порт контейнера.
Ось мій образ на Docker Hub акаунті
- ARG інструкції визначають змінні для часу створення.
- LABEL інструкції додають метадані до Docker-образу.
- ADD копіює файли з хоста до Docker-образу.
- CMD вказує на команду за замовчуванням, яку потрібно виконати при запуску контейнера.
● Мої шари образу, що були створені і використані для контейнера.
curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
● Ось команда, яку я використовую для встановлення Docker Scout — чудового інструменту, який допоможе виявити та виправити вразливості у ваших Docker-образах!!!
docker scout quickeview leonthelion22/dockerpurplerepo2025
● Команда docker scout quickview надасть огляд Docker-образу, показуючи його вразливості.
docker scout cves leonthelion22/purplerepo2025
● Рекомендації для виправлення цих поширених вразливостей можна отримати за допомогою команди Docker cves. Ви отримаєте детальні звіти про знайдені проблеми в Docker-образі, що допоможе вжити заходів для усунення потенційних ризиків безпеки.
Висновок:
Дякую всім за те, що витратили час на ознайомлення з моєю документацією, сподіваюся, вона була корисною. Якщо у вас є рекомендації або поради, ви можете зв’язатися зі мною через LinkedIn.
Перекладено з: 𝗨𝘁𝗶𝗹𝗶𝘇𝗶𝗻𝗴 𝗗𝗼𝗰𝗸𝗲𝗿 𝗳𝗼𝗿 𝗪𝗲𝗯 𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝗮𝗻𝗱 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆 𝗘𝗻𝗵𝗮𝗻𝗰𝗲𝗺𝗲𝗻𝘁