1.安装 redis
docker pull redis
docker run -p 6379:6379 --name redis -d redis
设置密码启动
docker run -d --name redis -p 6379:6379 redis --requirepass "123456"
2.安装 fastdfs
docker pull delron/fastdfs
mkdir /mydata
mkdir /tracker
mkdir /storage
docker run -d --name tracker --network=host -v /mydata/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
# 注意:tracker服务默认的端口为22122
docker run -d --name storage --network=host -e TRACKER_SERVER=x.x.x.x:22122 -v /mydata/fastdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
x.x.x.x 是tracker的服务器ip
默认情况下在Storage服务中是帮我们安装了Nginx服务的,相关的端口为:
服务 默认端口
tracker 22122
storage 23000
Nginx 8888
修改nginx的端口,需要修改两个地方
docker exec -it storage /bin/bash
cd /etc/fdfs/
vim storage.conf
修改最下面的http.server_port=8888
cd /usr/local/nginx/conf/
vim nginx.conf
修改 listen 8888; 这两个地方要一致。
测试fastdfs
上传一张图片到 /mydata/fastdfs/storage 中
进入storage容器
docker exec -it storage bash
cd /var/fdfs/
ls 可以看到刚才的文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 文件名
生成一个链接 例如 group1/M00/00/00/jljkljkljklj.jpg
可以通过 http:ip:8888/ 链接 访问图片
3.安装 rabbitmq
docker pull rabbitmq:management
运行
1.默认guest 用户,密码也是 guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
2.设置用户名和密码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user
-e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
说明
--hostname 主机名(rabbitmq的一个重要事项是它根据所谓的节点名称存储数据,默认是主机名)
web端访问端口号 15672
rabbitmq的配置文件在 /etc/rabbitmq/rabbitmq.conf 容器内的位置
默认端口
4369 erlang的端口
5672 client端通信端口,应用访问端口
15672 管理界面ui端口
25672 server间内部通信端口
访问 url http://ip:15672
4.安装 mysql
最新版
docker pull mysql
5.7版本
docker pull mysql:5.7
启动 5.7
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
启动 最新版
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest
进入mysql容器:
docker exec -it mysql名字 bash
登录mysql
mysql -u root -p
输入密码
开启远程访问权限,执行以下sql
use mysql;
select host,user from user;
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
创建一个admin用户,并且给他所有权限
create user 'admin'@'%' identified by '123456';
赋予权限
grant all on *.* to 'admin'@'%';
设置远程连接
alter user 'admin'@'%' identified with mysql_native_password by '123456';
flush privileges;
5.安装zookeeper
docker pull zookeeper:latest
docker run --name zookeeper -d -p 2181:2181 zookeeper:latest
6.安装 apollo
需要安装好mysql ,启动mysql,参考上面安装教程
使用navicat 等工具连接mysql,执行以下两个sql文件,
https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloportaldb.sql
https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloconfigdb.sql
docker pull apolloconfig/apollo-portal:latest
docker pull apolloconfig/apollo-adminservice:latest
docker pull apolloconfig/apollo-configservice:latest
依次运行
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.x:3306/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice
8080端口 映射8080 3306是mysql的端口
x.x.x.x是mysql安装的服务器ip
root为mysql的用户名 替换自己的
123456是密码 替换自己的(注意这里是mysql的远程连接用户root的密码,我在这里进了坑)
docker run -p 8090:8090 -e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.x:3306/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
使用8090 端口 映射8090 3306是mysql的端口
x.x.x.x是mysql安装的服务器ip
root为mysql的用户名 替换自己的
123456是密码 替换自己的(注意这里是mysql的远程连接用户root的密码,我在这里进了坑)
docker run -p 8070:8070 -e SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.x:3306/ApolloPortalDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -e APOLLO_PORTAL_ENVS=dev -e DEV_META=http://localhost:8080 -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal
使用8070 端口映射8070 浏览器访问页面就使用这个端口
8080是上面 apolloconfig/apollo-configservice的端口
3306是mysql的端口
x.x.x.x是mysql安装的服务器ip
root为mysql的用户名 替换自己的
123456是密码 替换自己的(注意这里是mysql的远程连接用户root的密码,我在这里进了坑)
APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中表ServerConfig的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
DEV_META / PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中ServerConfig的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准
启动后 等待3分钟左右
最后访问 ip:8070 默认账号 apollo 密码 admin