• springboot web 项目Docker线上部署


    1.先搭建自己私有仓库

    阿里云镜像加速器

    docker pull registry

    1.1.配置私有仓库地址

    "insecure-registries": ["192.168.1.119:5000"]

    结合我们刚才配置了阿里云的加速镜像地址:

    vim /etc/docker/daemon.json

     1.2.重启一下docker 

    systemctl restart docker

    1.3.创建容器

    docker run -d -p 5000:5000 --name registry docker.io/registry
    http://192.168.1.119:5000/v2/_catalog

    私有仓库,没有镜像。

    1.4.推送镜像到私有仓库

    1. # 标记hello-world该镜像需要推送到私有仓库
    2. docker tag hello-world:latest 192.168.1.119:5000/hello-world:latest

     

    1. # 通过push指令推送到私有仓库
    2. docker push 192.168.1.119:5000/hello-world:latest

     Docker私有镜像仓库搭建及SSL配置

     推送镜像到私有仓库。

    1. # 查看仓库镜像列表
    2. http://服务器IP地址:5000/v2/_catalog
    3. https://域名/v2/_catalog
    4. # 查看镜像版本列表
    5. curl http://服务器IP地址:5000/v2/your-image-name/tags/list
    6. curl https://域名/v2/your-image-name/tags/list

     1.5.验证从私有仓库下载镜像

    1. # 格式如下:
    2. docker pull 127.0.0.1:5000/镜像名称:镜像版本号

    注意细节:那就是要配置一下私有仓库地址,在daemon.json里。最后重启一下docker.

    注意:如果同一个镜像,只是通过tag命令重新打标签,然后重新上传到私有仓库,会提示该镜像已经存在。

     但是最终结果:还是会上传上去。

    2.dockerfile打包springboot项目

    2.1.Dockerfile文件

    1. FROM openjdk:8-jdk-alpine
    2. MAINTAINER ymy2017@qq.com
    3. ENV TZ=Asia/Shanghai
    4. ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
    5. RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    6. RUN mkdir -p /mego-pc
    7. WORKDIR /mego-pc
    8. EXPOSE 8071
    9. ADD lib ./lib
    10. ADD demodocker-0.0.1-SNAPSHOT.jar ./
    11. ADD mgcr_pc-0.0.1-SNAPSHOT.jar ./
    12. CMD sleep 120;java $JAVA_OPTS -jar mgcr_pc-0.0.1-SNAPSHOT.jar

    注意的点:在添加文件夹的时候,比如 想把当前Dockerfile所在的lib文件夹,复制到docker中的lib目录下,如果不加 ./lib  ,则会把所有lib下文件,直接添加到当前目录下。

    目录结构:

    了解目录结构:docker ADD命令的用法

     2.2.生成镜像

    docker build -f Dockerfile -t megopc:1.0 .

     2.3.运行镜像

    docker run --name pc2 -d -p 8072:8071 2f438d0096a4

    docker run --name pc3 -d -p 8072:8080 -v /datadrive/mego/log/pc:/datadrive/mego/log/pc cf9bac9ab0ac

    http://192.168.1.128:8072/app/test

    进入容器内部:镜像使用alpine制作:

    docker exec -it 5de31a13f002 /bin/sh

    docker run --name pc5 -d -p 8071:8071 51a3a53d6c79

    docker rm -f 容器id

    docker ps -a

    docker inspect 容器id

  • 相关阅读:
    需求管理的主要内容包括哪些?
    C语言 - 你一定能看懂的三子棋详解(万字长文,傻瓜式解析)
    java积累
    统计学补(似然函数+EM算法)
    创建高性能的索引
    Spring集成XxlJob核心初始化类,对应版本:2.4.1-SNAPSHOT
    ES6 入门教程 18 Iterator 和 for...of 循环 18.2 默认 Iterator 接口
    [SpringBoot] 父子项目搭建,过滤多模块发布到私仓
    css高阶技巧(2)
    shell编写循环检查脚本
  • 原文地址:https://blog.csdn.net/u011442726/article/details/125397173