前言
走过的坑终将化为蒲公英,风一吹就消散了,然后继续掉坑…
整体背景
win10
idea2019.3
vmware15 pro
CentOS-7-x86_64-DVD-2009.iso
docker 23.0.4
redis
mysql8
springBoot项目
1.安装虚拟软件vmware15 pro
安装vmware15
2.安装宿主机centos7
安装centos7
坑1:有可能ping www.baidu.com失败
参考链接
检查如下:
3.安装docker及redis,mysql
最终目标:
1.win10能telnet 虚拟机ip 3306 是ok得
2.能连上数据库
2.能连上redis
教程和坑如下(ps:因为有的人能一次成功,但有的人历经很多坑,所以常见坑的解决方案如下):
终极解决方案:重新安装centos7,从头来
常见命令:
启动docker应用
systemctl start docker
查看docker应用启动情况
systemctl status docker
停止docker应用
systemctl stop docker
查找镜像
docker search mysql
拉取镜像 tag 不写时,默认为latest
docker pull 镜像名字:tag
查看本地已拉取的镜像
docker images
删除镜像
docker rmi
例如:docker rmi mysql:5.6.40
创建并运行容器
docker run -id --name=mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:latest
启动容器
docker start redis1
停止运行容器
docker stop redis1
重启容器
docker restart redis1
查看容器的运行日志
docker logs -f redisTest
查看运行着的容器
docker ps
查看本地已创建的容器(运行着的+未运行着的)
docker ps -a
删除容器
docker rm
通过 容器名称 定位容器
docker rm redisTest
通过 容器ID 定位容器
docker rm d66021564fd4
登录到容器的控制台
docker exec
例如:docker exec -it redisTest /bin/bash
查看容器的端口映射
docker port redisTest
查看docker容器ip
//启动容器以后使用
docker inspect 容器名
#删除redis容器
docker rm -f myredis
#设置挂载重新运行redis
docker run -id --name=myRedis --privileged=true -p 6379:6379 -v /usr/local/docker/redis_6379/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis_6379/data:/data --name myredis redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass “123456”
设置挂载重新运行mysql8
docker run -id --privileged=true --name=mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
#设置挂载重新运行自己得springboot项目
docker run -id --name=springbootquartz -p 7016:7016 springbootquartz:latest
参考链接1
参考链接2
docker部署mysql后无法连接的解决方式
linux net.ipv4.ip_forward 数据包转发
CENTOS7防火墙开启、停止、关闭,添加删除开放端口
安装mysql 挂起之后 再次运行无法连接问题
外部连接不上 docker内的Mysql,telnet不通3306
Failed to start Docker Application Container Engine 解决方案
永久关闭linux防火墙
4.idea部署项目到docker中
ps: 第三步的目标达成后进行此步骤
教程1
教程2
Cannot resolve plugin com.spotify:docker-maven-plugin
Docker拉取jdk8镜像失败解决方案
运行jar包时提示no main manifest attribute解决方法
我的项目
<configuration>
<!--指定生成的镜像名,这里是我们的项目名 命名有要求:符合正则表达式,不能使用驼峰,"-" -->
<imageName>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://192.168.11.101:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar包所在的路径 此处配置的即对应项目中target目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.niu.springboot.QuartApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
最终成果: