Главная
Главная Руководства Docker › Docker - контейнер с MySQL сервером



Автор:

Статья опубликована: 2017-07-01 17:49:04
Последние правки: 2019-05-24 17:50:46

Создаем Docker контейнер с MySQL сервером из официального образа mysql.

  • Образ
    У MySQL есть официальный образ в репозитории docker, именно его и будем использовать.


  • Контейнер с mysql
    При создании контейнера автоматически создается том, где хранятся базы данных, для удобства последующей с ним работы, мы сделаем его "руками". Команда для создания и запуска контейнера:
    # docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=test -d -v /var/lib/docker/volumes/mysql-data:/var/lib/mysql mysql
    
    - наш контейнер называется mysql-server
    - пароль mysql root: test
    - /var/lib/docker/volumes/mysql-data : директория на хост-машине, где будут храниться БД контейнера
    - /var/lib/mysql : сюда директория монтируется в контейнере


  • Работа
    - запустить:
    # docker start mysql-server
    
    - остановить:
    # docker stop mysql-server
    

  • Перенос контейнера на другой сервер
    По большому счету, на новом сервере нам нужны только базы данных, остальное легко поднимается с нуля, поэтому самое простое - это остановить контейнер, скопировать на новый сервер директорию /var/lib/docker/volumes/mysql-data, после чего создать новый контейнер, как написано в разделе выше.

    Но если очень хочется, то переносим:
    - останавливаем контейнер и смотрим список контейнеров (нам будет нужен CONTAINER ID):
    # docker stop mysql-server
    mysql-server
    # docker ps -a
    CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                      PORTS               NAMES
    38c1c22fe12f             mysql                "docker-entrypoint..."   51 minutes ago      Exited (0) 49 seconds ago                       mysql-server
    
    - создаем образ контейнера:
    # docker commit 38c1c22fe12f export/mysql-server1
    
    - смотрим, появился ли образ:
    # docker images
    REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
    export/mysql-server   latest              6460b5db9ccc        35 minutes ago      407MB
    mysql                 latest              44a8e1a5c0b2        8 days ago          407MB
    
    - пишем образ в файл:
    # docker save export/mysql-server > mysql_server.tar.gz
    
    - образ из файла импортируем на другом сервере или восстанавливаем на своем:
    # docker load < mysql_server.tar.gz
    
    - директорию /var/lib/docker/volumes/mysql-data нужно переносить на новый сервер отдельно!
    - на новом сервере создаем новый контейнер из образа export/mysql-server