一、小编使用云服务器Huawei Cloud EulerOS安装的Docker
具体方法请自行查找
注意以下配置:
(1)配置DOCKER_HOST
sudo vim /etc/profile.d/docker.sh
添加export DOCKER_HOST=tcp://localhost:2375
执行source /etc/profile
执行source /etc/bashrc
(2)配置启动文件
修改 vim /etc/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
注意:
修改这个文件的时候,加上内存,否则启动报错 Too many errors, abort
LimitNOFILE=65535
LimitNPROC=65535
LimitCORE=65535
重载配置和重启:
sudo systemctl daemon-reload
sudo systemctl restart docker.service
(3)查看
docker version
二、windows电脑端,需要配置环境
DOCKER_HOST tcp://IP:2375
IP:是云服务器的ip地址,如果不配置环境变量,默认的是localhost
注意:配置完环境变量需要重启电脑才能生效
三、docker安装mysql
查询mysql镜像
docker search mysql
选择合适的拉取镜像
docker pull mysql:5.7
mkdir /usr/local/mysql
docker run --privileged=true --name mysql --restart=always -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7
docker exec -it mysql bash
mysql -uroot -p
show databases;
create database flow;
再创建表:根据自己实际情况进行创建
修改application.properties文件
spring.datasource.url=jdbc:mysql://IP:3306/flow?useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
IP地址为docker的mysql地址
四、springboot相关配置
(1)pom文件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${project.artifactId}</repository>
<!--latest也可以写其他的版本号-->
<tag>latest</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
(2)Dockerfile文件配置
在pom同目录下,创建一个Dockerfile文件
# 添加 Java 8 镜像来源
FROM java:8
# 暴露端口号
EXPOSE 8080
# 添加参数
ARG JAR_FILE
# 添加 Spring Boot 包
ADD target/${JAR_FILE} app.jar
# 执行启动命令
ENTRYPOINT ["java","-jar","/app.jar"]
(3)编译打包并推送镜像到docker
mvn clean package
查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
demo latest 887624374d21 10 minutes ago 679MB
五、docker启动springboot项目
#如果版本号是latest
sudo docker run -p 8080:8080 -t demo
#如果版本号不是latest
sudo docker run -p 8080:8080 -t demo:对应的版本号
最后
2024-02-26 07:52:41.655 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
如果报错:
driver failed programming external connectivity on endpoint infallible_zhukovsky (971c68b19460238de1a9dadb9188d33da768e83dcccc1aba18ff6c659eda398e): Bind for 0.0.0.0:8080 failed: port is already allocated.
重启下docker后再试
systemctl restart docker
正常返回用户表信息数据,则部署成功!