Запускаем полезные сервисы в контейнерах docker

Ali Aliev [2016-04-20]

Решил перенести все свои сервисы из хост машины в контейнеры Docker, что оказалось очень удобно. На данный момент я часто использую mysql(mariadb), postgresql, redis и memcached.

Небольшой список команд для запуска контейнеров:

# PostgreSQL
➜  ~ docker run --name postgres -p 5432:5432 -d postgres
➜  ~ psql -U postgres -h local.docker
psql (9.4.5, server 9.5.2)
WARNING: psql major version 9.4, server major version 9.5.
         Some psql features might not work.
Type "help" for help.

postgres=#


# MySQL (MariaDB)
➜  ~ docker run --name mariadb -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -d mariadb
# Опция MYSQL_ALLOW_EMPTY_PASSWORD=1 говорит о том, что нам не нужен пароль для авторизации
➜  ~ mysql -uroot -h local.docker
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.5-10.1.13-MariaDB-1~jessie mariadb.org binary distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

# Redis
➜  ~ docker run --name redis -p 6379:6379 -d redis

# Memcached
docker run --name memcached -p 11211:11211 -d memcached

➜  ~ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
3c8f104cfa4e        mariadb             "/docker-entrypoint.s"   5 minutes ago       Up 5 minutes        192.168.64.2:3306->3306/tcp     mariadb
c7751e050c2e        postgres            "/docker-entrypoint.s"   13 minutes ago      Up 13 minutes       192.168.64.2:5432->5432/tcp     postgres
b787fe27a4d7        redis               "/entrypoint.sh redis"   About an hour ago   Up About an hour    192.168.64.2:6379->6379/tcp     redis
f880a114121b        memcached           "/entrypoint.sh memca"   About an hour ago   Up About an hour    192.168.64.2:11211->11211/tcp   memcached
➜  ~

Видно что контейнеры работают в фоновом режиме. Для каждого из контейнеров можно запустить команду exec и запустить например sh:

➜  ~ docker exec -it postgres bash
[email protected]:/# su postgres
$ psql
psql (9.5.2)
Type "help" for help.

postgres=#
Fork me on GitHub