MySQL
下载镜像
docker pull mysql:5.6
启动镜像
# 开启端口映射,后台运行 指定root用户密码 指定容器名称 自动重启 数据挂载到宿主机
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 --name mysql --restart=always -v /root/mysqldata:/var/lib/mysql mysql:5.6
进入镜像
docker exec -it mysql bash
进入mysql
mysql -u root -p
然后输入密码
导出SQL文件
# 全量数据
docker exec 容器id|name sh -c 'exec mysqldump --all-database -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql
# 单库数据
docker exec 容器id|name sh -c 'exec mysqldump --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/single-databases.sql
# 只备份结构不备份数据
docker exec 容器id|name sh -c 'exec mysqldump --no-data --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/single-databases.sql
Redis
下载镜像
docker pull redis:6.0.12
启动镜像
# 开启端口映射,指定root用户密码 后台运行 指定容器名称 自动重启 开启持久化 数据映射到宿主机
docker run -d -p 6379:6379 --name redis --restart=always -v /root/redisdata:/data redis:6.0.12 redis-server --appendonly yes
redis支持内存数据持久化
rdb持久化:快照,Redis服务器将某一时刻数据以快照文件形式写入到磁盘
aof持久化:Redis服务器将所有Redis客户端的写操作以命令方式记录到日志文件中
进入镜像
docker exec -it redis bash
进入redis
redis-cli
自定义挂载Redis配置文件
# 使用完整配置文件启动
# 先将对应的redis.conf配置文件存放到文件路径下 /root/redisconf
docker run -d -p 6379:6379 --restart=always -v /root/redisconf:/data --name redis redis:6.0.12 redis-server /data/redis.conf
# 使用部分配置文件启动(推荐)
# 自己创建一个redis.conf文件。将需要的配置写入文件
# 例如文件中只写入appendonly yes 只开启持久化,其余使用默认配置
docker run -d -p 6379:6379 --restart=always -v /root/redisconf:/data --name redis redis:6.0.12 redis-server /data/redis.conf
nginx
下载镜像
docker pull nginx:1.19.10
启动镜像
# 映射端口 后台运行 自动重启
docker -d -p 80:80 --restart=always --name nginx nginx:1.19.10
进入容器
docker exec -it nginx bash
加载指定配置文件
# 查找容器内配置文件路径
find / -name nginx.conf
# 映射端口 后台运行 自动重启
docker -d -p 80:80 --restart=always --name nginx -v /root/nginxdata:/etc/nginx/nginx.conf:ro nginx:1.19.10
ElasticSearch
下载镜像
docker pull elasticsearch:6.8.10
启动镜像
# es如果启动时没有指定启动方式,默认会以集群方式启动,会有虚拟内存报错。
解决方式:
vim /etc/sysctl.conf
添加:vm.max_map_count=262144
生效:sysctl -p
# 开启端口映射(9200:http 9300:tcp),后台运行 指定root用户密码 指定容器名称 自动重启 数据挂载到宿主机
docker run -p 9200:9200 -p 9300:9300 -d --name es --restart=always -v /root/esdata:/usr/share/elasticsearch/data elasticsearch:6.8.10
进入镜像
docker exec -it es bash
加载指定配置文件
#挂载相应配置文件
1.mkdir /root/esconfig
2.vim elasticsearch.yml
3.挂载
docker run -p 9200:9200 -p 9300:9300 -d --name es --restart=always -v /root/esdata:/usr/share/elasticsearch/data -v /root/esconfig/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:6.8.10
设置ik分词器启动
# 设置对中文比较友好点的ik分词器
# github搜索elasticsearch-analysis-ik 注意:ik版本必须和es版本保持一致
docker run -p 9200:9200 -p 9300:9300 -d --name es --restart=always -v /root/esdata:/usr/share/elasticsearch/data -v /root/esconfig/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /root/esplugins:/usr/share/elasticsearch/plugins elasticsearch:6.8.10
下载对应版本kibana
# 版本必须和es版本保持一致
docker pull kibana:6.8.10
# 指定kibana连接端口
docker run -d -p 5601:5601 --name kibana --restart=always -e ELASTICSEARCH_URL=http://127.0.0.1:9200 kibana:6.8.10
MongoDB
下载镜像
docker pull mongo
启动镜像
docker run -d -p 27017:27017 -v /root/mongodata:/data/db --name mongo mongo
进入镜像
docker exec -it mongo bash
配置相关用户
mongo
use admin
db.createUser({user:"root",pwd:"123",roles[{role:"root",db:"admin"}]})
exit