Docker运行mongodb容器
思路是把mongodb
跑在Docker
的容器中,但把数据以及备份映射到主机中,以便容器的随时调整。在/var/lib
目录下新建mongodb
目录,并进入mongodb
目录新建data
以及backup
目录。运行以下命令启动容器,并进入到容器中运行mongodb
的交互命令。
1 | docker run --name mongo -p 27017:27017 -v /var/lib/mongodb/data:/data/db -v /var/lib/mongodb/backup:/data/backup -d mongo --auth |
创建mongodb
的管理员账户,并使用刚创建的管理员身份进行认证。新建数据库,然后为新建的数据库新建登录用户的身份就OK啦。
1 | > db.createUser({ user: 'admin', pwd: 'XXXXXXXX', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); |
在运行一段时间以后,我们可以执行如下命令进行数据库备份:(还未测试)
1 | docker exec mongo sh -c 'var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u admin -p XXXXXXXX -d smartsys -o /data/backup/${var}_test1.dat' |
Docker运行MySQL容器
也是先在/var/lib
目录新建两个conf
和data
目录进行数据的存储。然后运行容器吧~
1 | docker run --name mysql -p 3306:3306 -v /var/lib/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXXXXXXX -d mysql |
以上命令设置了MySQL
的root
用户的密码,接下来使用root
身份登录进MySQL中,去创建数据库以及相应的用户,并分配权限。
1 | docker exec -it mysql mysql -uroot -p |
执行如下命令进行数据库备份:(还未测试)
1 | DATE=$(date +%Y%m%d) |
Docker运行Redis容器
先从http://download.redis.io/redis-stable/redis.conf
下载官方的配置文件,并把其中的
1 | # bind 127.0.0.1 |
的#
去掉,分别表示允许非本地的访问,以及启用密码。这个密码必须足够长,因为Redis
的访问速度非常快,外部用户一秒内可以尝试多大150K个密码。还是新建/var/lib/redis/conf
和/var/lib/redis/data
目录,并把修改后的配置文件放到/var/lib/redis/conf
目录中去。然后就可以启动Redis
的容器了。
1 | docker run --name redis -v /var/lib/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /var/lib/redis/data:/data -p 6379:6379 -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes |
进入容器运行命令,会发现是需要密码的。
1 | docker exec -it redis redis-cli |