不为有趣之事,何遣有涯之生
不失其所者久,死而不亡者寿

Docker简明教程(10) 与常见的数据库结合使用

Docker与常见的数据库结合使用

MYSQL使用

1:下载镜像

docker pull mysql:5.7 

2:指定宿主机数据卷启动

docker run --name mysql -p 12345:3306 -v /home/dev/mysqldata:/var/lib/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123321qq -d mysql:5.7 

这里指定了使用自己的mysql数据文件

3:使用自定义配置文件启动,在mysqlconf下放着my.cnf文件:

docker run --name mysql -p 12345:3306 -v /home/dev/mysqldata:/var/lib/mysql -v /home/dev/mysqlconf:/etc/mysql/conf.d --privileged=true -e MYSQL_ROOT_PASSWORD=123321qq -d mysql:5.7

4:使用自定义日志目录

docker run --name mysql -p 12345:3306 -v /home/dev/mysqldata:/var/lib/mysql -v /home/dev/mysqllogs:/var/log/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123321qq -d mysql:5.7 

如果日志开启不成功,可能是因为mysql用户没有对日志文件夹的操作权限,进入到容器里面,设置一下,示例如下:

chown -R mysql:mysql /var/log/mysql

5:数据表备份,在宿主机上执行

docker exec 容器id sh -c 'exec mysqldump --all-databases -uroot -p"123321qq"' > /home/all-databases.sql 

REDIS使用

1.下载镜像

docker pull redis 

2.启动容器,默认暴露6379端口

docker run --name myredis -d redis

3.如果想使用自己的配置文件启动redis,一种方法是在其基础上写一个dockerfile,例如:

FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

另外一种方式是在启动命令中修改配置,如:

docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf

4.数据默认存储在VOLUME /data目录下,使用-v来指定挂载,如:

docker run --name myreis -d -p 6379:6379 -v /redisdocker/data:/data -v /redisconf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true redis redis-server /usr/local/etc/redis/redis.conf

注意:自己写的conf文件里面,不要配置bind的ip,也不要daemonize的配置,直接注释掉

5.aof的持久化方式

如果需要开启aof的持久化方式默认是rdb的,可以在配置文件里面设置,也可通过命令行指定:

docker run --name some-redis -d redis redis-server --appendonly yes 

6.如果应用需要连接redis:

docker run --name some-app --link some-redis:redis -d application-that-uses-redis

ElasticSearch使用

1.下载镜像

docker pull elasticsearch:6.4.1

2.启动过后,在里面安装上ik和head,然后构建自己的镜像:

具体安装过程请查看 [ELK简明指南系统—Elasticsearch及常用插件安装]一文

docker run -d -v /es-6.4.1/data:/usr/share/elasticsearch/data -v /es-6.4.1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-6.4.1/config/logging.yml:/usr/share/elasticsearch/config/logging.yml -v /es-6.4.1/config/scripts:/usr/share/elasticsearch/config/scripts --privileged=true -p 9200:9200 -p 9300:9300 elasticsearch:6.4.1
docker commit -m="add head and ik" -a="qiuxm" 容器id qiuxmes:6.4.1

3.然后就可以使用自己的镜像了

注意在使用docker里面的es的时候,要把client.transport.sniff设置为false

未经允许不得转载:菡萏如佳人 » Docker简明教程(10)

欢迎加入极客江湖

进入江湖关于作者