SpringBoot项目打包镜像上传阿里云和Docker容器

1、服务器安装docker

相关安装详情可查看docker安装
下面简要的说一下
一、安装

yum install -y yum-utils device-mapper-persistent-data lvm2

遇到Y/N选Y
二、配置阿里云仓库(便于快速拉取镜像)

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

三、启动docker,和编辑docker状态

启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机自动启动docker: systemctl enable docker

2、拉取镜像

一、拉取镜像

docker pull 镜像名:标签名

二、查看镜像

docker images

三、删除镜像

docker rmi 镜像ID(或者镜像名称:版本号)

3、创建容器

以Tomcat为例
一、拉取Tomcat镜像

docker pull tomcat:8

二、创建Tomcat容器
详细可查看docker容器创建

docker run -id --name=jhjTomcat -p 8888:8080 -v /usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8

-p 表示端口号映射, 宿主机端口号:容器运行端口号
-v 表示地址映射, 宿主机目录:容器映射目录
–privileged=true 如果映射的是多级目录,防止有可能会出现没有权限的问题,所以加上此参数
三、查看容器
查看所有容器

dokcer ps -a

四、开启容器

docker start  容器ID

五、删除容器

docker rm  容器ID

六、因为创建Tomcat的时候创建了目录挂载,所以放在宿主机下面的,所以宿主机的/usr/local/project对应的Tomcat的/usr/local/tomcat/webapps

4、配置服务器的2375端口

一、修改docker的配置

vim /usr/lib/systemd/system/docker.service

二、加入下面配置

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述
三、重启docker容器服务
执行下面两句命令

systemctl daemon-reload
systemctl restart docker

docker容器操作

    启动 systemctl start docker
    守护进程重启  sudo systemctl daemon-reload
    重启docker服务  systemctl restart docker
    重启docker服务  sudo service docker restart
    关闭docker   service docker stop   
    关闭docker  systemctl stop docker

四、查看docker 2375端口是否开放

IP:2375/version

如果开放则会页面出现一堆docker配置信息

五、服务器开放指定端口(2375)
如果访问不到,考虑防火墙为问题
1、查看服务器状态

firewall-cmd --state 

2、开启防火墙

systemctl start firewalld.service

3、开放指定端口2375

firewall-cmd --zone=public --add-port=2375/tcp --permanent

–zone=public:表示作用域为公共的;
–add-port=xx/tcp:添加tcp协议的端口xx;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
4、重新载入配置

firewall-cmd --reload

5、查看服务器开放端口

 firewall-cmd --list-ports

5、修改maven的setting.xml配置文件

具体可以看博客`阿里云镜像部署

<servers>
    <server>
	<id>docker-aliyun</id>
	<username>阿里云账号名</username>
	<password>阿里云仓库密码</password>
    </server>
  </servers>

6、SpringBoot项目打包镜像并推送到服务器和阿里云仓库

1、阿里云创建仓库
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
二、选择本地仓库
在这里插入图片描述

三、在springboot的pom文件中添加下面代码,修改docker的IP和阿里云镜像仓库的地址就行了

 <build>
        <finalName>app</finalName>
        <plugins>
            <!-- 插件一定要在其他构建插件之上,否则打包文件会有问题。 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--生成镜像相关配置-->
                <configuration>
                    <!-- 将forceTags设为true,这样就会覆盖构建相同标签的镜像  -->
                    <forceTags>true</forceTags>
                    <!-- 远程 docker 宿主机地址, 端口号是/lib/systemd/system/docker.service所暴露的端口号, 生成镜像到docker中 -->
                    <dockerHost>http://IP:2375</dockerHost>
                    <!--内容是之前修改的maven的settings.xml配置文件中,server节点的id-->
                    <serverId>docker-aliyun</serverId>
                    <!-- 镜像名:阿里云镜像仓库地址
                                ${project.artifactId}引用当前工程名,
                                ${project.version}引用当前工程版本号
                                registry.cn-hangzhou.aliyuncs.com/mengxuegu/demo:0.0.1-SNAPSHOT -->
                    <imageName>registry.cn-hangzhou.aliyuncs.com/jianghaojie/nanxi2:1.0</imageName>
                    <!--基础镜像-->
                    <!--<baseImage>jdk1.8</baseImage>-->
                    <baseImage>java</baseImage>
                    <!--类似于Dockerfile的ENTRYPOINT指令-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>  <!-- 指定打包的资源文件 -->
                            <targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 -->
                            <directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 -->
                            <include>${project.build.finalName}.jar</include> <!-- 这里指定最后生成的jar包 -->
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

四、最后执行命令

mvn clean package docker:build -DpushImage

在这里插入图片描述

阿里云里面有镜像,服务器的容器中也存在镜像了,这样不同的服务器可以在阿里云上拉取项目镜像,节约部署时间

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值