У даній статті розберемо роботу в Docker.
Для початку проведемо установку:
yum install docker
Запустимо сервіс docker:
service docker start
Щоб зробити пошук образів, виконаємо команду:
docker search centos
Даною командою ми виконали пошук образів centos, і отримали список доступних:
[root@local docker]# docker search centos INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 6370 [OK] docker.io docker.io/ansible/centos7-ansible Ansible on Centos7 132 [OK] docker.io docker.io/consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 125 [OK] docker.io docker.io/jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos ... 117 [OK] docker.io docker.io/centos/systemd systemd enabled base container. 92 [OK] docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 87 docker.io docker.io/imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
Щоб завантажити перший образ (centos), виконаємо команду:
docker pull centos
При успішному завантаженні образу ми будемо бачити наступне:
[root@local docker]# docker pull centos Using default tag: latest Trying to pull repository docker.io/centos ... latest: Pulling from docker.io/centos 45a2e645736c: Pull complete 1c3acf573616: Pull complete edcb61e55ccc: Pull complete cbae31bad30a: Pull complete aacbdb1e2a62: Pull complete fdeea4fb835c: Pull complete Digest: sha256:39eff7d56b96530d014083cd343f7314c23acbd1ecf37eb75a71a2f6584d0b02 Status: Downloaded newer image for docker.io/centos:latest
Якщо образи були завантажені раніше, подивитися їх можна командою:
docker images
Приклад:
[root@local docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 300e315adb2f 5 weeks ago 209 MB docker.io/ansible/centos7-ansible latest 688353a31fde 4 years ago 447 MB
Щоб запустити потрібний контейнер, виконаємо команду:
docker run -it centos /bin/bash
Після чого ми відразу перейдемо оболонку shell запущеного контейнера де можна проводити потрібну роботу:
[root@local docker]# docker run -it centos /bin/bash [root@434d7ed5f039 /]#
Так само, при запуску можна вказувати додаткові параметри, наприклад для того щоб прокинути порти, прокинути папку, обмежити ОЗУ і т.д.
Наприклад, щоб прокинути порти, ми повинні вказати ключ -P який відкриє всі порти, або ж через ключ -p вказати тільки конкретний порт. Давайте відкриємо 80 порт для nginx:
docker run -it -p 8080:80 centos /bin/bash
Таким чином ми в запущеному контейнері для 80 порту відкрили порт 8080 для зовнішнього світу.
Через docker ми можемо прокинути папку з нашої машини в контейнер. Наприклад, вкажемо папку /var/www/html на локальній машині в контейнер:
docker run -it -v /var/www/html:/var/www/html centos /bin/bash
Тепер вміст папки /var/www/html локальної машини буде ідентично директорії /var/www/html в контейнері.
Обмежимо ресурси для запускається контейнера. Наприклад, щоб дозволити використання CPU контейнера не більше ніж на 50%, виконаємо команду:
docker run -it --cpus=".5" centos /bin/bash
Якщо у Вас CPU 1 – то контейнер зможе його використовувати тільки на 50%.
Щоб обмежити пам’ять, вкажемо прапор –memory або -m:
docker run -it --memory=1024m centos /bin/bash
Даною командою ми вказали, що контейнер може використовувати пам’ять 1024мб, тобто – 1 Гб.
Детальніше про обмеження ресурсів можна дізнатися в офіційній документації: https://docs.docker.com/config/containers/resource_constraints/
Щоб подивитися активні контейнери, використовуємо команду:
docker ps -all
Ми отримаємо висновок активних контейнерів і їх статус:
[root@local docker]# docker ps -all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 434d7ed5f039 centos "/bin/bash" 13 minutes ago Exited (130) 11 seconds ago compassionate_bartik
Зазвичай, при виході з контейнера стандартними способами (exit, Ctrl + d) – контейнер зупиняється. Щоб не зупиняти контейнер використовуємо поєднання клавіш натиснувши ctrl+p і потім ctrl+q.
На цьому приклад робіт з контейнерами docker закінчений.