美文网首页
docker部署springboot

docker部署springboot

作者: 舒尔诚 | 来源:发表于2022-06-24 21:12 被阅读0次

    1 打包springboot项目 maven install ,打包为lib和jar


    image.png

    2 编写Dockerfile文件
    注意:此文件没有后缀

    FROM openjdk:8-jdk-alpine
    ARG JAR_FILE
    ARG LIB_FILE
    ADD ${JAR_FILE} app.jar
    ADD ${LIB_FILE} lib
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08"]
    CMD ["-Xms512m","-Xmx512m","-jar","/app.jar"]
    

    3 上传Dockerfile, jar和lib到linux下,


    image.png

    4 cd 到 jar所在的目录,执行docker build命令

    docker build -t discovery-eureka:1.0 --build-arg JAR_FILE=discovery-eureka-1.0-SNAPSHOT.jar --build-arg LIB_FILE=lib .
    

    注意 最后的点不能少,表示当前路径
    -t后面表示生成的镜像名称和版本
    --build-arg后面是参数名称,多个参数使用多个--build-arg
    5 查看刚才的镜像
    docker images


    image.png

    6 创建并运行容器

    docker run --name c-discovery -p 8081:8081 discovery-eureka:1.0
    

    7 docker 查看日志

    docker logs -f c-discovery
    

    8 根据容器id停止、启动容器

    docker stop 4bb16cffaf9a
    docker start 4bb16cffaf9a
    

    docker启动失败问题:

    Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details
    

    通过 journalctl -xe 命令,显示:

    unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '#' looking for beginning of object key string
    

    重新编写daemon.json文件,文件内容为:

    cat /etc/docker/daemon.json
    {
      "registry-mirrors": [
        "https://registry.docker-cn.com"
      ],
      "insecure-registries": [
        "registry.docker-cn.com"
      ]
    }
    

    可以换成阿里云的镜像
    "insecure-registries":["registry.cn-hangzhou.aliyuncs.com"
    冒号后面不能有空格

    镜像上传到阿里云仓库:
    https://blog.csdn.net/qq_42266114/article/details/122846772

    开启防火墙:
    systemctl start firewalld
    firewall-cmd --reload

    firewall-cmd --query-port=666/tcp 查看端口是否开放
    提示 yes,表示开启;no表示未开启。

    开放指定的端口
    firewall-cmd --zone=public --add-port=8081/tcp --permanent

    如果真的不希望docker被访问自动唤醒,执行 systemctl stop docker 后再执行systemctl stop docker.socket即可

    外面访问docker映射端口不成功,还未解决?

    相关文章

      网友评论

          本文标题:docker部署springboot

          本文链接:https://www.haomeiwen.com/subject/hzeasrtx.html