• idea构建docker镜像并发布到服务器


    idea构建docker镜像并发布到服务器

    1:docker安装

    2:docker开启远程访问

    [root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service
    #修改ExecStart这行
    ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
    #重新加载配置文件
    [root@izwz9eftauv7x69f5jvi96z docker]# systemctl daemon-reload    
    #重启服务
    [root@izwz9eftauv7x69f5jvi96z docker]# systemctl restart docker.service 
    #查看端口是否开启
    [root@izwz9eftauv7x69f5jvi96z docker]# netstat -nlpt
    #直接curl看是否生效
    [root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info

     3:防火墙开放2375端口号

    开启端口:80
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    
    查询端口号80 是否开启:
    firewall-cmd --query-port=80/tcp
    
    重启防火墙:
    firewall-cmd --reload
    
    查询有哪些端口是开启的:
    firewall-cmd --list-port

    4、idea安装docker插件

    5:配置docker服务器地址

    6、在pom文件中添加docker-maven插件

     <build>
            <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>
                        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                        <dockerDirectory></dockerDirectory>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
            </plugins>
        </build>

    7、配置Dockerfile文件:在工程根目录下新建Dockerfile文件,内容如下:

    #依赖的环境
    FROM openjdk:11-jre
    MAINTAINER Wilmiam
    #挂在的数据卷
    VOLUME /tmp
    #target/docker-0.0.1-SNAPSHOT.jar 这个是你打的包的目录
    ADD target/docker-0.0.1-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    #抛出的端口,这个就是需要绑定的端口
    EXPOSE 8080

    8、配置运行环境

    9、运行docker镜像打包发布(构建镜像之前需要用maven打包项目)

    确定项目的target下面有xxx.jar文件

     运行docker开始构建:

     显示如下标识构建成功

    可能出现的错误:

    error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/d9/d9aed20b68a4a40a396dc03a881c43531097404838e4dc60dbb7ed29f95974aa/data?verify=1592452748-wuYEctOEGXEsPBMLeTk2m6T5on4%3D: dial tcp 104.18.122.25:443: i/o timeout

    出错原因
    虚拟机中系统时间不同步,需要进行时间同步

    解决方案
    执行如下命令:

    yum install ntpdate
    ntpdate time.windows.com

     

  • 相关阅读:
    使用C#开发ActiveX控件
    安装Python 3.6
    SDL 2.0 API by Category
    SDL的基础知识以及利用SDL播放视频
    区块链的java实现
    区块链工业架构设计
    微服务架构的优势与不足
    微服务架构设计
    FFmpeg常用基本命令
    FFmpeg进行屏幕录像和录音
  • 原文地址:https://www.cnblogs.com/dw3306/p/14047445.html
Copyright © 2020-2023  润新知