docker安装spring cloud 以及 cloud alibaba 相关支持服务的配置
docker安装与命令
使用国内 daocloud 一键安装命令:
1 | curl -sSL https://get.daocloud.io/docker | sh |
1 | 启动docker |
docker安装MySQL
docker search mysql 命令来查看可用版本
下载 Mysql 镜像
1 | docker pull mysql:5.6 |
部署启动MySQL镜像
1 | docker run -d \ |
- -d:以后台的方式运行;
- –name mysql:指定容器的名称为 mysql;
- -p 3306:3306 将容器的 3306 端口挂载到宿主机的 3306 端口上;
- -e MYSQL_ROOT_PASSWORD=123456:指定 root 的密码为 123456
将容器中的目录文件复制到宿主机中
1 | # 将容器中的 mysql 配置文件复制到宿主机中指定路径下,路径可以根据需要进行修改 |
停止容器并删除
1 | docker stop 容器id |
正式运行 Mysql 容器并将刚刚复制到本地的配置和存储目录挂载到新的容器里面
1 | docker run -d \ |
完成后可以docker ps查看容器是否运行,确认运行远程连接
docker安装zookeeper
下载zookeeper镜像
1 | docker pull zookeeper |
启动容器并添加映射
1 | docker run -d -p 2181:2181 --name zookeeper01 --restart always 镜像id |
docker 安装redis
1 | docker run -d \ |
- -p 6379:6379: 将容器的 6379 端口映射到宿主机的 6379 端口;
- –restart always 设置docker重启时自动重启容器
- -v /usr/local/docker/redis/data:/data : 将容器中的 /data 数据存储目录, 挂载到宿主机中 /usr/local/docker/redis/data 目录下;
- -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf : 将容器中 /etc/redis/redis.conf 配置文件,挂载到宿主机的 /usr/local/docker/redis/redis.conf 文件上;
- redis-server –appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;
- –requirepass “123456” 设置redis密码
进入redis容器并且连接redis 确认正常运行
1 | docker exec -it redis redis-cli -h 127.0.0.1 -p 6379 -a password |
docker 安装RabbitMQ
下载镜像
1 | #指定版本,该版本包含了web控制页面 |
运行镜像
1 | docker run -d \ |
访问管理页面
1 | http://localhost:15672/ |
docker安装nginx
拉取镜像
1 | docker pull nginx:1.8 |
测试启动
1 | docker run --name nginx-test -p 8081:80 -d nginx |
将容器内nginx的配置文件拷贝到本地
1 | docker cp a2bdd792b474:/etc/nginx/nginx.conf /usr/local/docker/nginx/conf |
赋予本地存放nginx配置中的文件夹开放权限
1 | chmod -R 777 nginx |
创建容器启动镜像,将配置等需要修改的文件进行映射
1 | docker run -d \ |
创建一个index.html放入www文件夹中,访问部署的地址
docker 安装 zipkin
1、拉镜像
1 | docker pull openzipkin/zipkin |
2、运行镜像
1 | docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin |
3、访问可视化界面
1 | 浏览器访问:http://ip:9411/zipkin/ |
docker 安装 nacos
拉镜像,版本查看:https://github.com/nacos-group/nacos-docker
1 | docker pull nacos/nacos-server:1.1.4 |
创建数据目录
1 | mkdir -p /usr/local/docker/nacos/logs |
创建存储nacos配置的数据库
1 | create database nacos_config |
nacos初始化sql,需要先创建nacos数据库后,然后执行下面的sql
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
1 | /******************************************/ |
运行镜像
1 | docker run -d \ |
访问nacos
1 | ip:8848/nacos |
新增测试配置
查看数据库是否更新
数据库配置没有问题的话可以在表config_info中看到刚才新增的配置信息
获取配置
http://ip:8848/nacos/v1/cs/configs?dataId=test01.yml&group=DEFAULT_GROUP
docker 安装sentinel
拉取镜像
1 | docker pull bladex/sentinel-dashboard |
运行镜像
1 | docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard |
访问dashboard 地址
1 | 地址:http://localhost:8858 |
docker安装 seata:1.0.0
拉取镜像
1 | docker pull seataio/seata-server |
测试启动镜像
1 | docker run --name seata-server -p 8091:8091 -d seataio/seata-server:1.0.0 |
将容器中的registry.conf复制到本地来
1 | docker cp seata-server:/seata-server/resources/registry.conf /usr/local/docker/seata/conf |
官网下载复制config.txt文件进行修改
1 | 官网地址 |
从官网拉取shell脚本将config.txt推送到nacos配置中心
1 | 官网链接:https://github.com/seata/seata/blob/1.0.0/script/config-center/nacos/nacos-config.sh |
这时进入nacos控制台中应该可以看见我们推送过去的配置,默认配置是在public中的,手动克隆到自己建的命名空间
更改复制出来的registry.conf配置文件使用nacos 做注册、配置中心,db存储日志
1 | registry { |
创建存储seata配置的数据库
1 | create database seata |
初始化seata数据库
1 | 官网地址:https://github.com/seata/seata/blob/1.0.0/script/server/db/mysql.sql |
创建完成如图
停止并删除之前的容器
1 | docker stop seata-server |
赋予本地存放seata配置中的文件夹开放权限
1 | chmod -R 777 seata |
重新创建启动容器,并将本地registry.conf挂载到容器中
1 | docker run -d \ |
其他环境变量
运行成功后进入nacos控制台查看服务列表,seata服务成功注册
docker运行自己的jar包
创建镜像启动容器运行
- 使用rz命令上传jar到服务器的指定目录(没有此命令的安装一下lrzsz)
- 使用vim命令创建Dockerfile 文件
- 然后将下面的内容复制到Dockerfile文件中
1
2
3
4
5FROM java:8
MAINTAINER bin
ADD demo-1.0.0.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
- from java:8 拉取一个jdk为1.8的docker 镜像
- maintainer 镜像作者名称
- demo-1.0.0.jar 上传的jar包名称
- demo.jar 将该jar包重新命名的名称,在容器中运行的名称
- expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
- entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
- 创建好Dockerfile文件之后,执行命令 构建镜像 最后的 “ . ” 表示 Dockerfile 文件在当前目录下
1
docker build -t demo .
- 镜像构建成功,运行容器
1
docker run -d --name demo -p 8080:8080 demo
- docker ps 查看容器是否成功启动
运行jdk镜像将存放jar的目录进行挂载
- 在服务器中拉取jdk8的镜像
- 构建容器启动
1
2
3
4
5
6
7
8docker run -d \
--restart=always \
-v /usr/local/docker/demo/jar:/jar -v /server/logs/demo:/mnt/logs/demo \
-p 8080:8080 \
--name demo \
java:8 /usr/bin/java -jar \
-Duser.timezone=GMT+08 \
/jar/demo-1.0.0.jar
- -Duser.timezone 设置时区
- java:8 /usr/bin/java -jar 是执行 java jar的命令
- /jar/demo-1.0.jar 是需要运行的jar包的位置在容器中的什么位置,/jar 下面