Docker-部署Springcloud应用
部署eureka注册中心
部署eureka 注册中心。因为springboot自带Tomcat,所以直接打jar包,直接java -jar ....jar
准备一个centos6带有jdk的容器
docker pull centos:6 docker run -it --name centos_micro -p 58889:8889 centos:6
下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
将jdk拷贝到容器内
FengZhen$ docker cp /Users/FengZhen/Downloads/jdk-8u171-linux-x64.tar.gz 42d5bc926de3:/jdk-8u171-linux-x64.tar.gz
进入容器
FengZhen$ docker exec -it 42d5bc926de3 /bin/bash [root@42d5bc926de3 /]# ls bin home lib64 mnt root srv usr dev jdk-8u171-linux-x64.tar.gz lost+found opt sbin sys var etc lib media proc selinux tmp
安装jdk
tar -zxvf jdk-8u171-linux-x64.tar.gz
配置环境变量
[root@42d5bc926de3 /]# vi ~/.bash_profile export JAVA_HOME=/java/jdk1.8.0_171 export PATH=$PATH:$JAVA_HOME/bin [root@42d5bc926de3 /]# source ~/.bash_profile [root@42d5bc926de3 /]# java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Jdk安装成功
将项目jar包拷贝进容器内
FengZhen$ docker cp eureka-server-0.0.1-SNAPSHOT.jar 42d5bc926de3:/jar/ [root@42d5bc926de3 jar]# ls eureka-server-0.0.1-SNAPSHOT.jar
直接使用java -jar执行该jar包
[root@42d5bc926de3 jar]# java -jar eureka-server-0.0.1-SNAPSHOT.jar
执行成功后,在宿主主机请求该端口
成功
使用Nginx负载均衡
将以上操作的容器提交产生新的镜像 centos6_jdk:0.1
FengZhen$ docker commit -m 'add jdk1.8' -a "Dokcer FZ" 42d5bc926de3 centos6_jdk:0.1 sha256:1aa27342ec8e323110926ee108b72f6127f6615cb3140156e8b847a1f2504e00
启动一个新的容器
FengZhen$ docker run -itd --name centos_micro1 -p 58888:8889 centos6_jdk:0.1 ba235b30c2a8f3701dc1022d8c7215e2c5554c3e881dc873ada12f1c19374883
进入容器
FengZhen$ docker exec -it ba235b30c2a8 /bin/bash
[root@ba235b30c2a8 /]#
启动项目
[root@ba235b30c2a8 jar]# java -jar eureka-server-0.0.1-SNAPSHOT.jar
启动nginx
FengZhen$ docker run -itd --name nginx_micro -p 50080:80 -v /Users/FengZhen/Desktop/积累/docker/docker_nginx:/usr/share/nginx/html nginx:latest f9bef01af25416dc3866f4d49e7ed10b8feced753f439c4dfed7c8f8a43d6eed FengZhen$ echo "hello docker nginx!" > index.html
进入容器
FengZhen$ docker exec -it f9bef01af254/bin/bash
将Nginx默认index.html更换内容如下
root@fe21c9e2f1af:/# cd /usr/share/nginx/html/ root@fe21c9e2f1af:/usr/share/nginx/html# ls 50x.html index.html root@fe21c9e2f1af:/usr/share/nginx/html# cp index.html index_bak.html root@fe21c9e2f1af:/usr/share/nginx/html# echo "hello docker nginx!" > index.html
此时刷新页面可以看到页面内容已成功更换。
# /usr/sbin/nginx 启动nginx服务
# apt-get update 升级vim
# apt-get install vim 安装vim
配置/etc/nginx/nginx.conf
html{}中添加
upstream micro{ server 192.168.1.102:58889; server 192.168.1.012:58888; }
配置 /etc/nginx/conf.d/default.conf
root@2b4934752b9f:/# vim /etc/nginx/conf.d/default.conf location / { root /usr/share/nginx/html; index index.html index.htm; proxy_pass http://micro; }
退出容器并重启
docker restart 275cf1511f80
此时请求
成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示