用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