Приклад роботи з Docker на Centos 7

У даній статті розберемо роботу в 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 закінчений.

Goodhoster.NET
Додати коментар