用Docker容器部署java微服务

用Docker容器部署微服务

一、 准备基础

1.机器环境准备

基础环境
Centos7
Docker环境 ///如果不会安装Docker可以使用下面这个脚本一键配置
机器IP: 192.168.183.10 // 因为配置文件里面ip均为192.168.183.10,所以统一改为此ip
///脚本内容比较多,所以放在文章最后面,此脚本主要用于初始化机器,如果环境都已经配置好了可以不使用

2.准备镜像,拉取部署微服务的项目文件

需要的镜像,镜像可以自行准备,类型和版本如下

[root@localhost work]# docker image ls 
REPOSITORY              TAG            IMAGE ID       CREATED        SIZE
adoptopenjdk/openjdk8   latest         ecc2bde40359   8 months ago   321MB
rabbitmq                3-management   6c3c2a225947   2 years ago    253MB
mysql                   5.7            8cf625070931   2 years ago    448MB
redis                   3.2.10         ab80677cd595   6 years ago    99.7MB

所需的项目文件

[root@localhost web]# ls
=                                    frontend-server-0.0.1-SNAPSHOT.jar  shop_goods.sql
CACHED                               goodDockerfile                      shop_member.sql
configDockerfile                     good-server-1.0-SNAPSHOT.jar        shop_seckill.sql
config-repo-3272722823845724514.rar  [internal]                          transferring
config-server-1.0-SNAPSHOT.jar       memberDockerfile                    websocketDockerfile
eurekaDockerfile                     member-server-1.0-SNAPSHOT.jar      websocket-server-0.0.1-SNAPSHOT.jar
eureka-server-1.0-SNAPSHOT.jar       naming                              writing
exporting                            seckillDockerfile                   zuulDockerfile
frontendDockerfile                   seckill-server-1.0-SNAPSHOT.jar     zuul-server-1.0-SNAPSHOT.jar
[root@localhost web]# pwd 
/work/web

从我的git仓库拉取项目文件
git地址

https://gitee.com/cjclvxy/java-project.git   ///git仓库地址

git clone https://gitee.com/cjclvxy/java-project.git ///拉取项目所需所有文件命令
///项目文件拉取下来保存到/work/web/下面 

3.部署项目需要的基础服务

3.1部署redis缓存

[root@localhost work]# docker run -tid --name=redis --hostname=redis --restart=always --net=host redis:3.2.10 
44865c94d41cc82c013f7fb4b55f9bc9e4643e7ac95e7ac0bfce06daabf26201
[root@localhost work]# netstat -luntp | grep redis
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      5515/redis-server * 
tcp6       0      0 :::6379                 :::*                    LISTEN      5515/redis-server * 

3.2 部署MySQL数据库

[root@localhost work]# docker run -tid --name=web_db --hostname=web_db --restart=always --net=host -e MYSQL_ROOT_PASSWORD=admin mysql:5.7 
b7cd58b168ef722cde86526f3aac5520526a2e9d54354b61c47c0dc90d5c7d51
[root@localhost work]# netstat -luntp | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      5949/mysqld  
[root@localhost work]# docker ps -a 
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS     NAMES
b7cd58b168ef   mysql:5.7      "docker-entrypoint.s…"   5 minutes ago    Up 5 minutes              web_db
44865c94d41c   redis:3.2.10   "docker-entrypoint.s…"   28 minutes ago   Up 28 minutes             redis

3.3导入数据库表

[root@localhost web]# docker cp shop_goods.sql web_db:/
Successfully copied 3.58kB to web_db:/
[root@localhost web]# docker cp shop_member.sql web_db:/
Successfully copied 3.58kB to web_db:/
[root@localhost web]# docker cp shop_seckill.sql web_db:/
Successfully copied 7.68kB to web_db:/

[root@localhost web]# docker exec -ti web_db bash
root@web_db:/# ls
bin   dev			  entrypoint.sh  home  lib64  mnt  proc  run   shop_goods.sql	shop_seckill.sql  sys  usr
boot  docker-entrypoint-initdb.d  etc		 lib   media  opt  root  sbin  shop_member.sql	srv		  tmp  var
root@web_db:/# mysql -uroot -padmin < shop_goods.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@web_db:/# mysql -uroot -padmin < shop_member.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
root@web_db:/# mysql -uroot -padmin < shop_seckill.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.

root@web_db:/# mysql -uroot -padmin 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> 
mysql> grant all on *.* to 'root'@'%' identified by 'admin';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  ///注意这里是创建了一个用户,并不是root用户

3.3 部署rabbitmq消息队列

[root@localhost web]# docker run -tid --name=rabbitmq --hostname=rabbitmq --net=host rabbitmq:3-management 
41c567194c3bacf4435db95def06d8f2d5f6cad0086b57c3cd5b7d1c4de28d23
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED          STATUS          PORTS     NAMES
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   6 seconds ago    Up 6 seconds              rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   16 minutes ago   Up 16 minutes             web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   39 minutes ago   Up 39 minutes             redis

[root@localhost web]# docker exec -ti rabbitmq bash 
root@rabbitmq:/# rabbitmqctl add_user liushao admin 
Adding user "liushao" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
root@rabbitmq:/# rabbitmqctl set_permissions liushao "." "." ".*" 
Setting permissions for user "liushao" in vhost "/" ...
root@rabbitmq:/# exit 
exit


4. 部署微服务框架

4.1部署erueka 注册中心

负责注册所有服务的通信地址
需要使用Dockerfie创建镜像

[root@localhost web]# vim eurekaDockerfile
[root@localhost web]# cat eurekaDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY eureka-server-1.0-SNAPSHOT.jar /eureka-server.jar 

CMD ["java", "-jar", "/eureka-server.jar" ]

[root@localhost web]# docker build -t eureka-server:1.0 -f eurekaDockerfile ./ 
[+] Building 0.6s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from eurekaDockerfile                                                                       0.0s
 => => transferring dockerfile: 238B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.2s
 => => transferring context: 44.22MB                                                                                             0.2s
 => [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                            0.0s
 => [2/2] COPY eureka-server-1.0-SNAPSHOT.jar /eureka-server.jar                                                                 0.2s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:a1476562ca861a8dc9296c9cf25f6834f8297862a87d02e300f210325aba209e                                     0.0s
 => => naming to docker.io/library/eureka-server:1.0                                                                             0.0s
[root@localhost web]# docker run -tid --name=eureka-server --hostname=eureka-server --restart=always --net=host eureka-server:1.0  
cc487d2fc9d0833aadbf98bcae6b2f6a9e6c9bac49724fe0b87d1d226b8a8c70
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED          STATUS          PORTS     NAMES
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   5 seconds ago    Up 4 seconds              eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   14 minutes ago   Up 14 minutes             rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   31 minutes ago   Up 31 minutes             web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   54 minutes ago   Up 54 minutes             redis
[root@localhost web]# docker logs eureka-server 
2024-07-19 07:06:16.883  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$f1f067f0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.4.RELEASE)

5.部署config-server 配置中心

负责集中管理所有业务组件的配置文件、从远程的git服务器拉取配置文件

[root@localhost web]# vim configDockerfile 
[root@localhost web]# cat configDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY config-server-1.0-SNAPSHOT.jar /config-server.jar 

CMD ["java", "-jar", "/config-server.jar" ]
                                                                                    
[root@localhost web]# docker build -t config-server:1.0 -f configDockerfile ./
[+] Building 0.1s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from configDockerfile                                                                       0.0s
 => => transferring dockerfile: 238B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.0s
 => => transferring context: 111B                                                                                                0.0s
 => [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                            0.0s
 => CACHED [2/2] COPY config-server-1.0-SNAPSHOT.jar /config-server.jar                                                          0.0s
 => exporting to image                                                                                                           0.0s
 => => exporting layers                                                                                                          0.0s
 => => writing image sha256:540c9a7d0fdd491129c16d867e6bae1ee88d8723f881ab7d2827fddac2d02fbe                                     0.0s
 => => naming to docker.io/library/config-server:1.0                                                                             0.0s

[root@localhost web]# docker run -tid --name=config-server --hostname=config-server --net=host --restart=always config-server:1.0
9f11c7453365383086fd2046bd932934b5040a36ad526a98b22094fbd83d4d7d
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
9f11c7453365   config-server:1.0       "java -jar /config-s…"   29 seconds ago      Up 28 seconds                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   10 minutes ago      Up 10 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   25 minutes ago      Up 25 minutes                rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   41 minutes ago      Up 41 minutes                web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   About an hour ago   Up About an hour             redis
[

6.部署zuul-server 网关

负责集中接收处理请求、反向代理 、负载均衡

[root@localhost web]# cat zuulDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY zuul-server-1.0-SNAPSHOT.jar /zuul-server.jar 

CMD ["java", "-jar", "/zuul-server.jar" ]
[root@localhost web]# docker build -t zuul-server:1.0 -f zuulDockerfile ./
[+] Building 0.6s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from zuulDockerfile                                                                         0.0s
 => => transferring dockerfile: 230B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.2s
 => => transferring context: 41.98MB                                                                                             0.2s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [2/2] COPY zuul-server-1.0-SNAPSHOT.jar /zuul-server.jar                                                                     0.2s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:39b95e78fbb95d4998a0054c8d4a484c55c659c9b2af1adab1f2f33c052601d2                                     0.0s
 => => naming to docker.io/library/zuul-server:1.0                                                                               0.0s
[root@localhost web]# docker run -tid --name=zuul-server --hostname=zuul-server --net=host --restart=always zuul-server:1.0 
8cae9509de3428f22ceb1a8215844d53566e634c5d5c2ee8de35545971fa2f68
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   5 seconds ago       Up 5 seconds                 zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   6 minutes ago       Up 6 minutes                 config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   16 minutes ago      Up 16 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   31 minutes ago      Up 31 minutes                rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   47 minutes ago      Up 47 minutes                web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   About an hour ago   Up About an hour             redis
[root@localhost web]# docker logs zuul-server 
2024-07-19 07:23:01.508  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.auto

二、部署业务

1. 部署会员服务

[root@localhost web]# cat memberDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY member-server-1.0-SNAPSHOT.jar member-server.jar

CMD ["java", "-jar", "/member-server.jar" ]
[root@localhost web]# docker build -t member-server:1.0 -f memberDockerfile ./ 
[+] Building 0.7s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from memberDockerfile                                                                       0.0s
 => => transferring dockerfile: 236B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.3s
 => => transferring context: 64.75MB                                                                                             0.2s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [2/2] COPY member-server-1.0-SNAPSHOT.jar member-server.jar                                                                  0.2s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:8cfc339b78be391cc09a62560bd5f0bb20d7ff72c672df6fd90a1f0a2181ee17                                     0.0s
 => => naming to docker.io/library/member-server:1.0                                                                             0.0s
[root@localhost web]# docker run -tid --name=member-server --hostname=member-server --net=host --restart=always member-server:1.0 
3d8eb534edf9f7fd5184d33c59a08d981f489c0eba603940ff289add8e809b37
[root@localhost web]# docker ps a 
"docker ps" accepts no arguments.
See 'docker ps --help'.

Usage:  docker ps [OPTIONS]

List containers
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
3d8eb534edf9   member-server:1.0       "java -jar /member-s…"   7 seconds ago       Up 6 seconds                 member-server
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   8 minutes ago       Up 8 minutes                 zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   15 minutes ago      Up 15 minutes                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   25 minutes ago      Up 25 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   40 minutes ago      Up 40 minutes                rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   56 minutes ago      Up 56 minutes                web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   About an hour ago   Up About an hour             redis
[root@localhost web]# 

2.部署商品展示业务

[root@localhost web]# cat goodDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY good-server-1.0-SNAPSHOT.jar /good-server.jar 

CMD ["java", "-jar", "/good-server.jar" ]
[root@localhost web]# docker build -t goodserver:1.0 -f goodDockerfile ./
[+] Building 0.9s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from goodDockerfile                                                                         0.0s
 => => transferring dockerfile: 230B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.3s
 => => transferring context: 64.50MB                                                                                             0.2s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [2/2] COPY good-server-1.0-SNAPSHOT.jar /good-server.jar                                                                     0.5s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:2b242dd65036be4824a5e669314b9957e9c8513234d5644381b9258e64ac8731                                     0.0s
 => => naming to docker.io/library/goodserver:1.0                                                                                0.0s
[root@localhost web]# docker run -tid --name=member-server --hostname=localhost  --net=host --restart=always member-server:1.0 
afbee367ca7731703f5a20d3426101e65ce6a8588cbfd56b605a1bad606881a4

[root@localhost web]# docker ps -a 

CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
2c292527ad26   goodserver:1.0          "java -jar /good-ser…"   5 seconds ago       Up 4 seconds                 good-server
3d8eb534edf9   member-server:1.0       "java -jar /member-s…"   4 minutes ago       Up 4 minutes                 member-server
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   13 minutes ago      Up 13 minutes                zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   19 minutes ago      Up 19 minutes                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   29 minutes ago      Up 29 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   44 minutes ago      Up 44 minutes                rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   About an hour ago   Up About an hour             web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   About an hour ago   Up About an hour             redis
[root@localhost web]# 
[root@localhost web]# docker logs good-server 
2024-07-19 07:36:00.464  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$5a63243c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

3.部署秒杀业务

[root@localhost web]# vim seckillDockerfile 
[root@localhost web]# cat seckillDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY seckill-server-1.0-SNAPSHOT.jar /seckill-server.jar 

CMD ["java", "-jar", "/seckill-server.jar" ]

[root@localhost web]# docker build -t seckill-server:1.0 -f seckillDockerfile ./ 
[+] Building 0.8s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from seckillDockerfile                                                                      0.0s
 => => transferring dockerfile: 242B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [internal] load build context                                                                                                0.3s
 => => transferring context: 66.50MB                                                                                             0.3s
 => [2/2] COPY seckill-server-1.0-SNAPSHOT.jar /seckill-server.jar                                                               0.3s
 => exporting to image                                                                                                           0.2s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:46364af4ee57b24596899a0d6a8ac9285081206f50a8a72c74f676f5a63f258a                                     0.0s
 => => naming to docker.io/library/seckill-server:1.0                                                                            0.0s
[root@localhost web]# docker run -tid --name=seckill-server --host=localhost --net=host --restart=always seckill-server:1.0 
unknown flag: --host
See 'docker run --help'.
[root@localhost web]# docker run -tid --name=seckill-server --host=localhost --net=host --restart=always seckill-server:1.0 
unknown flag: --host
See 'docker run --help'.
[root@localhost web]# docker run -tid --name=seckill-server --hostnaem=localhost --net=host --restart=always seckill-server:1.0 
unknown flag: --hostnaem
See 'docker run --help'.
[root@localhost web]# docker run -tid --name=seckill-server --hostname=localhost --net=host --restart=always seckill-server:1.0 
bfc3e9daf216817d00abf216acc7a69659b1ab4ad8757f3e5b33bbdd193bdfbb
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
bfc3e9daf216   seckill-server:1.0      "java -jar /seckill-…"   6 seconds ago       Up 5 seconds                 seckill-server
86e69ba177a3   goodserver:1.0          "java -jar /good-ser…"   9 minutes ago       Up 9 minutes                 good-server
afbee367ca77   member-server:1.0       "java -jar /member-s…"   9 minutes ago       Up 9 minutes                 member-server
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   26 minutes ago      Up 26 minutes                zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   32 minutes ago      Up 32 minutes                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   42 minutes ago      Up 42 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   57 minutes ago      Up 57 minutes                rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   About an hour ago   Up About an hour             web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   2 hours ago         Up 2 hours                   redis

4.部署web前端

[root@localhost web]# cat frontendDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY frontend-server-0.0.1-SNAPSHOT.jar /frontend-server.jar 

CMD ["java", "-jar", "/frontend-server.jar" ]
[root@localhost web]# docker build -t frontend-server:1.0 -f frontendDockerfile ./
[+] Building 0.3s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from frontendDockerfile                                                                     0.0s
 => => transferring dockerfile: 248B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.1s
 => => transferring context: 17.93MB                                                                                             0.1s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [2/2] COPY frontend-server-0.0.1-SNAPSHOT.jar /frontend-server.jar                                                           0.1s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.0s
 => => writing image sha256:ee6fffcc7aca82c7794a19dc6ba8b039819234d963283982c8c90103709db67a                                     0.0s
 => => naming to docker.io/library/frontend-server:1.0                                                                           0.0s
[root@localhost web]# docker run -tid --name=frontend-server --hostname=localhost --restart=always --net=host frontend-server:1.0 
241e0587619e42ed8371c951f17725da5a58d5882e3e67e5544f294e3c645a00
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
241e0587619e   frontend-server:1.0     "java -jar /frontend…"   7 seconds ago       Up 6 seconds                 frontend-server
bfc3e9daf216   seckill-server:1.0      "java -jar /seckill-…"   6 minutes ago       Up 6 minutes                 seckill-server
86e69ba177a3   goodserver:1.0          "java -jar /good-ser…"   15 minutes ago      Up 15 minutes                good-server
afbee367ca77   member-server:1.0       "java -jar /member-s…"   15 minutes ago      Up 15 minutes                member-server
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   32 minutes ago      Up 32 minutes                zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   39 minutes ago      Up 39 minutes                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   49 minutes ago      Up 49 minutes                eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   About an hour ago   Up About an hour             rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   About an hour ago   Up About an hour             web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   2 hours ago         Up 2 hours                   redis

5. 部署websocket, 实现http长连接

[root@localhost web]# cat websocketDockerfile 
FROM adoptopenjdk/openjdk8:latest

COPY websocket-server-0.0.1-SNAPSHOT.jar /websocket-server.jar 

CMD ["java", "-jar", "/websocket-server.jar" ]
[root@localhost web]# docker build -t websocket-server:1.0 -f websocketDockerfile ./
[+] Building 0.2s (7/7) FINISHED                                                                                       docker:default
 => [internal] load build definition from websocketDockerfile                                                                    0.0s
 => => transferring dockerfile: 252B                                                                                             0.0s
 => [internal] load metadata for docker.io/adoptopenjdk/openjdk8:latest                                                          0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [internal] load build context                                                                                                0.0s
 => => transferring context: 116B                                                                                                0.0s
 => CACHED [1/2] FROM docker.io/adoptopenjdk/openjdk8:latest                                                                     0.0s
 => [2/2] COPY websocket-server-0.0.1-SNAPSHOT.jar /websocket-server.jar                                                         0.1s
 => exporting to image                                                                                                           0.1s
 => => exporting layers                                                                                                          0.1s
 => => writing image sha256:4934e48800cb192305589977fdf210a9776fece4dfa596f6d88d2d5f09ed4f65                                     0.0s
 => => naming to docker.io/library/websocket-server:1.0                                                                          0.0s
[root@localhost web]#  docker run -tid --name=websocket-server --hostname=localhost --net=host --restart=always websocket-server:1.0
70a3528b46529ecde7b73a07cfc08e43bed85649d5538e87117526433432f2fc
[root@localhost web]# docker ps -a 
CONTAINER ID   IMAGE                   COMMAND                   CREATED             STATUS             PORTS     NAMES
70a3528b4652   websocket-server:1.0    "java -jar /websocke…"   5 seconds ago       Up 4 seconds                 websocket-server
241e0587619e   frontend-server:1.0     "java -jar /frontend…"   16 minutes ago      Up 16 minutes                frontend-server
bfc3e9daf216   seckill-server:1.0      "java -jar /seckill-…"   23 minutes ago      Up 23 minutes                seckill-server
86e69ba177a3   goodserver:1.0          "java -jar /good-ser…"   32 minutes ago      Up 32 minutes                good-server
afbee367ca77   member-server:1.0       "java -jar /member-s…"   32 minutes ago      Up 32 minutes                member-server
8cae9509de34   zuul-server:1.0         "java -jar /zuul-ser…"   49 minutes ago      Up 49 minutes                zuul-server
9f11c7453365   config-server:1.0       "java -jar /config-s…"   56 minutes ago      Up 56 minutes                config-server
cc487d2fc9d0   eureka-server:1.0       "java -jar /eureka-s…"   About an hour ago   Up About an hour             eureka-server
41c567194c3b   rabbitmq:3-management   "docker-entrypoint.s…"   About an hour ago   Up About an hour             rabbitmq
b7cd58b168ef   mysql:5.7               "docker-entrypoint.s…"   2 hours ago         Up 2 hours                   web_db
44865c94d41c   redis:3.2.10            "docker-entrypoint.s…"   2 hours ago         Up 2 hours                   redis


6.浏览器访问测试

如果一切正常以下端口都会运行

[root@localhost web]# netstat -luntp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      5515/redis-server * 
tcp        0      0 0.0.0.0:15692           0.0.0.0:*               LISTEN      7000/beam.smp       
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      7045/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1177/sshd           
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      7000/beam.smp       
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1416/master         
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      7000/beam.smp       
tcp6       0      0 :::3306                 :::*                    LISTEN      5949/mysqld         
tcp6       0      0 :::6379                 :::*                    LISTEN      5515/redis-server * 
tcp6       0      0 :::9100                 :::*                    LISTEN      12076/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      18191/java          
tcp6       0      0 :::4369                 :::*                    LISTEN      7045/epmd           
tcp6       0      0 :::8083                 :::*                    LISTEN      15648/java          
tcp6       0      0 :::8084                 :::*                    LISTEN      15753/java          
tcp6       0      0 :::8085                 :::*                    LISTEN      17148/java          
tcp6       0      0 :::22                   :::*                    LISTEN      1177/sshd           
tcp6       0      0 :::8761                 :::*                    LISTEN      9133/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1416/master         
tcp6       0      0 :::9000                 :::*                    LISTEN      12957/java          
tcp6       0      0 :::5672                 :::*                    LISTEN      7000/beam.smp       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           960/dhclient        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           815/chronyd         
udp6       0      0 ::1:323                 :::*                                815/chronyd 

通过浏览器访问 192.168.183.10:8080/login.html进行测试
账号:17361095738
密码:admin
在这里插入图片描述

在这里插入图片描述至此就成功了,

脚本

#!/bin/bash

setenforce 0
network=$(ip a s | head -n 7 | tail -n 1 | awk -F: '{print $2}' | awk '{print $1}'  )
nmcli con up $network
echo $network
config=ifcfg-$network
nmcli con modify $network autoconnect yes
yum clean all 
yum repolist all 
yum install -y wget	    
mv /etc/yum.repos.d/old/CentOS-Base.repo  /etc/yum.repos.d/  
mkdir /etc/yum.repos.d/old                                  
mv /etc/yum.repos.d/* /etc/yum.repos.d/old                  
mv /etc/yum.repos.d/old/CentOS-Base.repo  /etc/yum.repos.d/ 
tee /etc/yum.repos.d/base.repo <<-'EOF'
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/
gpgcheck=0
enabled=1
EOF
yum clean all                                               
yum repolist all                                            
yum install -y wget                                      
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo &> /dev/null 
yum install -y bash-completion httpd vim dhcp net-tools  psmisc unzip lftp ntpdate tree bzip2 expect rsync 
echo "*/30 * * * * ntpdate 182.92.12.11 2> /dev/null " >> /var/spool/cron/root
sed -i 's/ONBOOT=on/ONBOOT=yes/g' /etc/sysconfig/network-scripts/$config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/ssh/sshd_config
ntpdate 182.92.12.11  &> /dev/null
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7.9/x86_64/stable/
enabled=1
gpgcheck=0
EOF
yum install -y docker-ce
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ayzelu97.mirror.aliyuncs.com"]
}
EOF
systemctl enable --now docker
systemctl disabled --now firewalld

    sleep 10
    reboot 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值