How to run SQL server in a Docker container
Оглавление:
- Предпосылки
- Установите Docker на CentOS
- Выполнение команды Docker без Sudo
- Интерфейс командной строки Docker
- Docker Images
- Контейнеры Docker
- Вывод
Docker - это технология контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых самодостаточных контейнеров, которые могут работать практически в любом месте.
В этом руководстве мы расскажем, как установить Docker CE на CentOS 7, и рассмотрим основные концепции и команды Docker.
Предпосылки
Прежде чем приступить к этому учебному пособию, убедитесь, что выполнены следующие предварительные условия:
- Сервер CentOS 7Вы вошли как пользователь без полномочий root с привилегиями sudo. Вы проверяете это руководство о том, как создать нового пользователя sudo.
Установите Docker на CentOS
Хотя пакет Docker доступен в официальном репозитории CentOS 7, он не всегда может быть последней версией. Рекомендуемый подход - установить Docker из репозитория Docker.
Чтобы установить Docker на вашем сервере CentOS 7, выполните следующие действия:
-
Начните с обновления системных пакетов и установите необходимые зависимости:
sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2
Затем выполните следующую команду, которая добавит стабильный репозиторий Docker в вашу систему:
sudo yum-config-manager --add-repo
Теперь, когда репозиторий Docker включен, установите последнюю версию Docker CE (Community Edition), используя yum, набрав:
sudo yum install docker-ce
После установки пакета Docker запустите демон Docker и включите его автоматический запуск во время загрузки:
sudo systemctl start docker
sudo systemctl enable docker
Чтобы убедиться, что служба Docker запущена, введите:
sudo systemctl status docker
Вывод должен выглядеть примерно так:
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
На момент написания текущей стабильной версией Docker является
18.06.1
, чтобы напечатать тип версии Docker:docker -v
Docker version 18.06.1-ce, build e68fc7a
Выполнение команды Docker без Sudo
По умолчанию для управления Docker требуются права администратора. Если вы хотите запускать команды Docker от имени пользователя без полномочий root без добавления
sudo
вам нужно добавить своего пользователя в группу docker, которая создается во время установки пакета Docker CE. Вы можете сделать это, набрав:
sudo usermod -aG docker $USER
$USER
- это переменная среды, в которой хранится ваше имя пользователя.
Выйдите из системы и войдите снова, чтобы обновить членство в группе.
Чтобы убедиться, что Docker успешно установлен и что вы можете запускать команды docker без sudo, введите следующую команду, которая загрузит тестовый образ, запустит его в контейнере, распечатает сообщение «Hello from Docker» и выйдет:
docker container run hello-world
Вывод должен выглядеть следующим образом:
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9bb5a5d4561a: Pull complete Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
Интерфейс командной строки Docker
Теперь, когда у нас есть работающая установка Docker, давайте рассмотрим основной синтаксис командной строки Docker.
Командная строка Docker имеет следующий вид:
docker
Вы можете получить список всех доступных команд, набрав
docker
без параметров:
docker
Docker Images
Образ Docker состоит из серии слоев, представляющих инструкции в Dockerfile образа, которые составляют исполняемое программное приложение. Образ - это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как двоичные файлы, библиотеки и инструкции, необходимые для запуска приложения. Короче говоря, образ Docker - это, по сути, снимок контейнера Docker.
Docker Hub - это облачная служба реестра, которая, помимо прочего, используется для хранения образов Docker в общедоступном или частном хранилище.
Для поиска изображения в хранилище Docker Hub просто используйте подкоманду
search
. Например, чтобы найти образ CentOS, запустите:
docker search centos
Вывод должен выглядеть следующим образом:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 4257 ansible/centos7-ansible Ansible on Centos7 109 jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 tutum/centos Simple CentOS docker image with SSH access 39
Как видно из результатов поиска, выводится таблица с пятью столбцами:
NAME
,
DESCRIPTION
,
STARS
,
OFFICIAL
и
AUTOMATED
. Официальный имидж - это имидж, который Docker разрабатывает совместно с партнерами по разработке.
Если мы хотим загрузить официальную сборку CentOS 7, мы можем сделать это с помощью подкоманды
image pull
:
docker image pull centos
Using default tag: latest latest: Pulling from library/centos 469cfcc7a4b3: Pull complete Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for centos:latest
В зависимости от скорости вашего Интернета, загрузка может занять несколько секунд или несколько минут. Как только изображение загружено, мы можем перечислить изображения с:
docker image ls
Вывод должен выглядеть примерно так:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB
Если по какой-то причине вы хотите удалить изображение, вы можете сделать это с помощью подкоманды
image rm
:
docker image rm centos
Untagged: centos:latest Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0
Контейнеры Docker
Экземпляр изображения называется контейнером. Контейнер представляет собой среду выполнения для отдельного приложения, процесса или службы.
Возможно, это не самое подходящее сравнение, но если вы программист, вы можете рассматривать образ Docker как класс, а контейнер Docker как экземпляр класса.
Мы можем запускать, останавливать, удалять и управлять контейнером с помощью подкоманды
docker container
.
Следующая команда запустит Docker-контейнер на основе образа CentoOS. Если у вас нет изображения локально, оно сначала загрузит его:
docker container run centos
На первый взгляд может показаться, что ничего не произошло вообще. Ну, это не правда. Контейнер CentOS останавливается сразу после загрузки, потому что у него нет долго выполняющегося процесса, и мы не предоставили никакой команды, поэтому контейнер загрузился, выполнил пустую команду и затем завершил работу.
-it
позволяет нам взаимодействовать с контейнером через командную строку. Для запуска интерактивного контейнера введите:
docker container run -it centos /bin/bash
Как видно из вывода после запуска контейнера, командная строка изменяется, что означает, что вы теперь работаете изнутри контейнера:
#
Для просмотра списка запущенных контейнеров: введите:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
Если у вас нет запущенных контейнеров, вывод будет пустым.
Чтобы просмотреть как запущенные, так и остановленные контейнеры, передайте ключ
-a
:
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon
Чтобы удалить один или несколько контейнеров, просто скопируйте идентификатор контейнера (или идентификаторы) сверху и вставьте их после подкоманды
container rm
:
docker container rm c55680af670c
Вывод
Вы узнали, как установить Docker на свой компьютер CentOS 7 и как загружать образы Docker и управлять контейнерами Docker. Вы также можете прочитать о Docker Compose, который позволяет вам определять и запускать мультиконтейнерные приложения Docker.
Этот учебник едва затрагивает поверхность экосистемы Docker. В некоторых наших следующих статьях мы продолжим углубляться в другие аспекты Docker. Чтобы узнать больше о Docker, ознакомьтесь с официальной документацией Docker.
Как установить и использовать докер на Raspberry Pi
В этом руководстве мы расскажем, как установить Docker на Raspberry Pi, и рассмотрим основные концепции и команды Docker.
Как установить и использовать докер на Debian 9
В этом руководстве мы познакомим вас с процессом установки Docker на компьютер с Debian 9 и изучим основные концепции и команды Docker.
Как вывести контейнеры в докер
Docker - это платформа для контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых самодостаточных контейнеров, которые могут работать практически где угодно. В этой статье мы расскажем, как составить список контейнеров Docker.