# MySQLのimageをpull
$ docker pull mysql:5.7
# データストア用のbusyboxのimageをpull
# docker pull busybox
# 確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 cd88b71c6c8c 2 days ago 383.4 MB
busybox latest e02e811dd08f 5 weeks ago 1.093 MB
# 環境のbuild
$ cd centos
$ docker-compose build --no-cache
# beproudbotのソースコードがあるフォルダをマウントする為、docker-compose.yamlを編集する
$ vim docker-compose.yaml
volumes: # write your beproudbot path # sample # - /Users/wan/Work/bp/beproudbot:/beproudbot ※ここに上記を参考にコンテナと共有するフォルダのパスを記載する
# 環境の起動
$ docker-compose up -d
# 起動確認
% docker-compose ps
Name Command State Ports
-----------------------------------------------------------------
bot /bin/bash Exit 0
mysql docker-entrypoint.sh mysqld Up 3306/tcp
mysql-datastore sh Up
# botコンテナに入る
$ docker-compose run --rm app bash
# MySQLとの疎通確認
[root@aa4a7143f3f4 app]# python3.5 connect_mysql_test.py
{'password': 'very-secret', 'id': 1}
# コンテナの停止
$ docker-compose stop
# コンテナの停止後、削除
$ docker-compose down
# コンテナIDの確認
$ docker ps
# docker コンテナの削除
$ docker rm {container id}
# docker imageの確認
$ docker images
# docker imageの削除
$ docker rmi {image id}
# DataVolumeContainerからDataVolumeをバックアップ
# Docker 1.8.x and below
$ docker run --rm --volumes-from mysql-datastore -v $(pwd):/backup busybox tar cvf /backup/backup.tar /var/lib/mysql
# --rm: コンテナのプロセスが終了すると、コンテナを削除
# --volumes-from: DataVolumeContainer名を指定
# -v {host}:{container}: ホストのディレクトリをコンテナのディレクトリにマウント
# busybox: DataVolumeバックアップに使用するimage名
# tar cvf /backup/backup.tar /var/lib/mysql: コンテナで実行するコマンド
# DataVolumeContainerにDataVolumeをレストア
# Docker 1.8.x and below
$ docker run --rm --volumes-from mysql-datastore -v $(pwd):/backup busybox tar xvf /backup/backup.tar
# MySQLコンテナに接続
$ docker exec -it mysql bash
root@38ecc8a8cbad:/# mysql -u root -p