在云服务器上安装docker容器,记录完成一个docker部署
1.打包
首先将自己写好的接口打包,通过Maven中生命周期中的package将java代码打包。在产生的target文件夹中生成一个jar文件。
2.新建Dockerfile文件
在target文件夹中新建Dockerfile文件
FROM eclipse-temurin:17-jdk-alpine
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 7770
VOLUME /tmp
ARG JAR_FILE
COPY *.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
其中我的java版本是17,7770是我application.yml中配置的端口号
3.文件传输
将打包的jar文件和Dockerfile文件通过MobaXterm传输给自己的云服务器上。
我的文件放在云服务器中的/opt目录下,在/opt中创建项目文件夹javademo,将打包的jar文件和Dockerfile文件放在javademo目录下。
4.创建工程
需要进到javademo目录下,通过命令创建。
$ docker build -t javaspringdemo:v1.2 .
--打包jar文件为docker镜像文件。
--javaspringdemo 镜像的名字
-- 冒号后面的是版本号 v1.2
-- 最后面有个点
5.创建yml文件
在opt目录下创建docker-compose-javademo.yml文件,注意yml格式
docker-compose-javademo.yml
version: '3.9'
services:
javaspringboot: #服务名称
hostname: javaspringboot #服务指定主机名称
image: javaspringdemo:v1.2 #镜像名称:镜像版本
environment: #环境变量
TZ: Asia/Shanghai
LANG: en_US.UTF-8
ports: #端口号
- "8008:7770"
networks: #网络, 这个服务所使用的是哪个网络
- middleware
networks: #设置服务的网络名字
middleware:
external: true
name: macrowing
此yml文件可以添加多个模块
--8008为部署完访问的端口号,映射本地的7770
启动命令
$ docker stack deploy -c docker-compose-javademo.yml javaspringboot
注:yml在opt目录下,则需要返回opt目录下执行命令
至此项目启动成功
6.查看状态与测试
列出所有运行的docker服务
$ docker service ls
可以看到已经启动成功
列出所有标签名称
$ docker stack ls
查看服务的日志运行情况
$ docker service logs -f javaspringboot_javaspringboot
测试