作为一个开发人员,平日里难免会与各种数据库进行打交道,但如果每次使用都在本机从头部署,难免过于繁杂,Docker
此时无疑成为最优解。
只需在本机安装一个虚拟机,通过 Docker
容器便可实现快速部署,无需繁琐的环境依赖,而一旦出现问题,直接删除容器重新创建即可,仅用于开发测试绰绰有余。
下面即介绍常用数据库通过
Docker
容器部署教程。
一、FTP
1. 创建目录
创建 FTP
目录用于后续容器目录映射。
# 创建目录
mkdir -p /home/docker/ftp
2. 容器启动
拉取 FTP
镜像并根据下载的镜像启动容器。
其中的 192.168.0.20
需替换为你的服务器 IP
, FTP_USER
为登录的用户名, FTP_PASS
为登录密码。
# 拉取镜像
docker pull fauria/vsftpd
# 启动容器
docker run -d --privileged=true \
-p 20:20 -p 21:21 \
-p 21100-21110:21100-21110 \
-v /home/docker/ftp:/home/vsftpd \
-e FTP_USER=budai \
-e FTP_PASS=123456 \
-e PASV_ADDRESS=192.168.0.20 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
fauria/vsftpd
3. 权限配置
若未对 FTP 用户权限执行限制,则其会访问整个服务器文件系统。
在 /etc/vsftpd/vsftpd.conf
文件中添加下述配置限制用户仅能访问自身目录。
docker exec -it vsftpd bash
vi /etc/vsftpd/vsftpd.conf
# 配置文件中添加下行
chroot_local_user=YES
4. 测试连接
在 Windows
下打开文件资源管理器,地址栏输入 ftp://192.168.0.20
后在弹出的提示框输入账号密码即可。
如果使用上述方法连接失败,则进入 Internet属性
高级设置中开启被动 FTP
连接设置。
二、HBase
1. 容器启动
通过 Docker
搭建 HBase
测试环境比较简单,直接拉取镜像启动即可。
docker run -d \
--name hbase \
-p 2181:2181 \
-p 16010:16010 \
-p 16020:16020 \
-p 16030:16030 \
harisekhon/hbase
2. 页面访问
启动容器之后,访问页面查看是否启动成功,访问 <IP:16010>
,出现如下内容表明启动成功。
3. 服务访问
若需要访问 HBase
数据库服务,可直接通过命令行进入,之后就可以直接运行相关的 SQL
命令。
# 进入容器
docker exec -it hbase bash
# 进入命令行模式
bin/hbase shell
三、ElasticSearch
1. 目录创建
创建数据存储目录用于后续存储映射文件。
# 创建映射目录
mkdir -p /usr/local/dockerdata/elasticsearch/data
mkdir -p /usr/local/dockerdata/elasticsearch/config
mkdir -p /usr/local/dockerdata/elasticsearch/plugins
# 创建配置文件并写入
echo "http.host: 0.0.0.0" >> /usr/local/dockerdata/elasticsearch/config/elasticsearch.yml
2. 容器启动
通过拉取的镜像启动容器,并将配置文件与数据目录等映射出来。
# 拉取镜像
docker pull elasticsearch:7.6.2
# 启动容器
docker run --privileged=true \
--name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx512m" \
-v /usr/local/dockerdata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/congif/elasticsearch.yml \
-v /usr/local/dockerdata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/dockerdata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2
如果容器启动失败查看日志是否未开启文件读写权限。
# 查看日志
docker logs elasticsearch
# 设置读写目权限
chmod 777 /usr/local/dockerdata/elasticsearch/data
chmod 777 /usr/local/dockerdata/elasticsearch/config
3. 访问测试
打开浏览器输入 <IP>:9200
显示以下信息说明安装成功。
{
"name" : "67f95596567a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "3aiqqdPITX-y1SL3Yn0ngQ",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
4. 开启认证
(1) 修改配置
进入 Dokcer
容器修改配置文件开启用户认证。
docker exec -it elasticsearch bash
vi config/elasticsearch.yml
在文件中修改如下内容,完成后保存退出。
# 开启加密
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
(2) 设置密码
修改完配置文件后需要重启生效,然后才能设置用户密码。
# 重启容器
docker restart elasticsearch
# 进入容器
docker exec -it elasticsearch bash
# 设置密码
elasticsearch-setup-passwords interactive