使用Docker部署之前写的一个博客项目,主要用到了Mysql和Redis,Redis作网站访问量统计。下面会对具体的部署方式作详细讲解 一、服务器安装Docker 1、删除docker旧版本 sud
使用Docker部署之前写的一个博客项目,主要用到了Mysql和Redis,Redis作网站访问量统计。下面会对具体的部署方式作详细讲解
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
sudo yum install -y yum-utilssudo yum-config-manager \ --add-repo \ Http://mirrors.aliyun.com/docker-ce/linux/Centos/docker-ce.repo # 阿里云的
# 安装docker 相关 docker-ce 社区版 docker-ee企业版yum install docker-ce docker-ce-cli containerd.io
这时报错
- Status code: 404 for https://mirrors.aliyun.com/docker-ce/linux/centos/2/x86_64/stable/repodata/repomd.xml
查询os版本
可以看到当前服务器版本是Huawei Cloud EulerOS 的2.0版本
[hqf@ecs-337729 ~]$ cat /etc/os-releaseNAME="Huawei Cloud EulerOS"VERSION="2.0 (x86_64)"ID="hce"VERSION_ID="2.0"PRETTY_NAME="Huawei Cloud EulerOS 2.0 (x86_64)"ANSI_COLOR="0;31"
找到mirrors.aliyun.com/docker-ce/linux/centos路径下发现并没有版本为2的路径,只有7-8。所以只需要修改该路径就行了
[hqf@ecs-337729 ~]$ sudo vim /etc/yum.repos.d/docker-ce.repo[docker-ce-stable]name=Docker CE Stable - $basearchbaseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stableenabled=1gpGCheck=1gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
将$releaserver改成8
之后再次执行
yum install docker-ce docker-ce-cli containerd.io
安装成功!
[hqf@ecs-337729 ~]$ docker pull mysql:8.08.0: Pulling from library/mysql197c1adcd755: Pull complete 45f2e353f7d2: Pull complete 68ec6ece42ef: Pull complete cfa4d9a7b88e: Pull complete 64cab5858b1d: Pull complete 92fcd248d982: Pull complete
[hqf@ecs-337729 ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 8.0 57da161f45ac 2 weeks aGo 517MBhello-world latest feb5d9fea6a5 17 months ago 13.3kB
[hqf@ecs-337729 ~]$ docker run -d -p 3306:3306 -v mysql_conf:/etc/mysql/conf.d -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWord=123456 --name mysql01 mysql:8.000afe560d1c93a750f9b021da46f9a8544cd466e6263b2574980152885daf5bb
[hqf@ecs-337729 ~]$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES00afe560d1c9 mysql:8.0 "docker-entrypoint.s…" 6 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql01
[hqf@ecs-337729 ~]$ docker inspect mysql01... ... "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:02", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "8131aa939ac0e34ca9e00641ed5d0f21b138815d765c2d36e8e7f1882a3cef32", "EndpointID": "38041eab55f2643c750c77235195cd7aaea1b6a16049498259d32da93f547b8e", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02", "DriverOpts": null } }
“IPAddress”: “172.17.0.2”
记录下来之后会用到
[hqf@ecs-337729 ~]$ docker volume lsDRIVER VOLUME NAMElocal mysql_conflocal mysql_data[hqf@ecs-337729 ~]$ docker volume inspect mysql_data[ { "CreatedAt": "2023-02-23T14:56:07+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/mysql_data/_data", "Name": "mysql_data", "Options": null, "Scope": "local" }]
到卷挂载目录下上传.sql文件
进入容器
[hqf@ecs-337729 ~]$ docker exec -it mysql01 /bin/bash
创建数据库
mysql> create database blog;
进入数据库
mysql> use blog;
导入数据
mysql> source /var/lib/mysql/blog.sql;
查看导入数据
mysql> show tables;
导入成功!
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';mysql> flush privileges; // 刷新权限
使用navicate连接,成功!
docker pull redis
docker run -p 6379:6379 --name myredis -v /home/www/redis/redis.conf:/etc/redis/redis.conf -v /home/www/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
如果启动失败,需要将配置文件中的daemonize的参数值改为no
再次启动后成功!
docker inspect myredis
记录下该地址之后项目配置会用到
连接成功!
将项目数据库连接IP改成上述MySQL容器IP
将redis连接IP改成上述Redis容器IP
FROM java:8VOLUME /tmpADD boot-blog-0.0.1-SNAPSHOT.jar app.jarEXPOSE 80ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker build -t boot-blog:1.0 .
报错
Error response from daemon: manifest for java:8 not found: manifest unknown: manifest unknown
解决
将Dockerfile中FROM java:8 改成 FROM openjdk:8
然后再次执行构建,成功!
docker run -d -p 80:80 --name boot-blog boot-blog:1.0
查看容器运行日志
docker logs <container-id>
在数据库连接url后添加allowPublicKeyRetrieval=true
重新打包上传并运行
浏览器访问服务器IP
来源地址:https://blog.csdn.net/oNew_Lifeo/article/details/129224974
--结束END--
本文标题: Docker部署Springboot项目(含MySQL+Redis)
本文链接: https://www.lsjlt.com/news/408212.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
2024-05-08
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0