zoukankan      html  css  js  c++  java
  • 使用Docker发布应用

    新建spring boot应用demo-docker,添加web依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

    入口类

    @RestController
    @SpringBootApplication
    public class DemoDockerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoDockerApplication.class, args);
        }
        @RequestMapping("/")
        public String index(){
            return "Hello world!"+new Date();
        }
    }

    使用maven打包

    打开demo-docker arget 目录,找到jar文件

    接下来使用Xshell连接到CentOS,cd 到目标目录,这里假如为/opt/demo

    可以直接吧jar文件拖放到Xshell中,需要在CentOS上安装rz命令,如果没有安装会报错

    使用下面的命令安装

    yum install -y lrzsz

    上传jar包后在demo 目录下创建一个Dockerfile文件

    vi Dockerfile

    编辑内容如下

    FROM java:8
    VOLUME /tmp
    COPY demo-docker-0.0.1-SNAPSHOT.jar app.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8100
    ENTRYPOINT ["java","-jar","/app.jar"]

    这里的touch命令是更新文件的创建时间

    目录结构如下

    接下来创建镜像

    docker build -t demo .

    -t 指定生成镜像的标签信息

    后面的"."表示当前目录

    执行上面的指令输出结果

     使用下面命令运行镜像

    docker run -d -p 8100:8100 demo

    查看运行状态,访问http://localhost:8100

    Docker指令说明

    • FROM 格式为FROM<image>,或者FROM<image>:<tag>
    • RUN 格式为RUN<command>或RUN["executable","param1","param2"] 前者默认将在shell终端运行命令,即/bin/sh -c;后者则使用exec执行,如RUN ["/bin/bash","-c","echo hello"]
    • CMD 格式为CMD ["executable","param1","param2"] 使用exec执行;或CMD command param1 param2 在/bin/sh中执行;
    • EXPOSE 格式为EXPOSE <port> [<port>...],如 EXPOSE 22 80 443
    • ENV 指定环境变量,格式为ENV <key> <value>,如 ENV PATH /usr/local/nginx
    • ADD 格式为ADD <src> <dest>,将复制指定的<src>路径下的内容到容器的<dest>路径下,<src>可以是Dockerfile所在目录的一个相对路径(文件或目录),也可以是一个URL,还可以是一个tar文件(如果为tar文件,会自动解压到<dest>路径下)
    • COPY 格式为COPY <src> <dest>,复制本地主机的<src>下的内容到镜像的<dest>下,目标路径不存在时会自动创建,当使用本地目录为源目录时,推荐用COPY而不是ADD
    • ENTRYPOINT 指定镜像的默认入口,支持两种格式 ENTRYPOINT ["executable","param1","param2"],或ENTRYPOINT command param1 param2
    • VOLUMN 创建一个数据卷挂载点 格式为 VOLUMN ["/data"]
    • USER 指定运行容器的用户名
    • WORKIDR 为后续的RUN、CMD和ENTRYPOINT指定配置工作目录
  • 相关阅读:
    .net常用框架总结
    微信小程序 语音转换
    nginx+redis实现session共享 .NET分布式架构
    Redis 安装及注册服务
    WebApi跨域
    Uri各个属性取值测试
    一些常用的FFMPEG命令集合
    动态规划重学习笔记
    给自己的电脑时间进行精准校时
    [NOI题库][POJ2536][匈牙利算法][二分图最大匹配]Gopher II
  • 原文地址:https://www.cnblogs.com/uptothesky/p/8320267.html
Copyright © 2011-2022 走看看