Пример работы с 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 закончен.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *