docker 배치 springboot

절차 약술
  • 간단 한 Spring Boot 프로젝트 구축
  • 프로젝트 에 Docker 지원 추가
  • 포장 환경 구축
  • 가상 컴퓨터 설치
  • xshell 연결
  • docker 설치
  • jdk 설치
  • maven 설치
  • 배치
  • 간단 한 Spring Boot 프로젝트 구축
    가장 간단 한 helloworld 의 spring 프로젝트 를 만 들 고 실행 되 며 포트 에 접근 하여 성공 여 부 를 확인 합 니 다.
    프로젝트 에 Docker 지원 추가pom.xml 에 Docker 미 러 이름 을 추가 하고 속성 에 좋 은 미 러 이름 의 접 두 사 를 추가 합 니 다.
    
        1.8
        springboot
    
    

    plugins 에 Docker 빌 드 플러그 인 추가:
    
    
        com.spotify
        docker-maven-plugin
        1.0.0
        
            ${docker.image.prefix}/${project.artifactId}
            src/main/docker
            
                
                    /
                    ${project.build.directory}
                    ${project.build.finalName}.jar
                
            
        
    
    

    디 렉 터 리 src / main / docker 에서 Dockerfile 파일 을 만 듭 니 다. Dockerfile 파일 은 미 러 를 만 드 는 방법 을 설명 합 니 다.
    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD hello-docker-0.0.1-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    이 Dockerfile 파일 은 매우 간단 합 니 다. Jdk 기반 환경 을 구축 하고 Spring Boot Jar 를 미 러 에 추가 하여 간단하게 설명 합 니 다.
  • FROM 은 Jdk 8 환경 을 기본 미 러 로 사용 하고 미 러 가 로 컬 이 아니라면 DockerHub 에서 다운로드
  • 하 겠 다 고 밝 혔 다.
  • VOLUME, VOLUME 는 Spring Boot 가 내 장 된 Tomcat 용 기 를 사용 하기 때문에 Tomcat 은 기본적으로 /tmp 작업 디 렉 터 리 로 사용 합 니 다.이 명령 의 효 과 는 홈 호스트 /tmp 디 렉 터 리 에 임시 파일 을 만 들 고 용기 에 연결 하 는 /var/lib/docker 디 렉 터 리
  • 입 니 다.
  • ADD, 파일 복사 및 이름 바 꾸 기
  • ENTRYPOINT, Tomcat 의 시작 시간 을 단축 하기 위해 /tmp 의 시스템 속성 지향 java.security.egd 을 ENTRYPOINT
  • 로 추가 합 니 다.
    메모: 위의 이 /dev/urandom 항목 명 (hello - docker) 과 버 전 번호 (0.0.1 - SNAPSHOT) 는 pom 파일 과 일치 해 야 합 니 다.
    포장 환경 구축
    윈도 에 Docker 환경 을 구축 하 는 것 은 매우 번 거 롭 지만, 현재 이곳 에서 제공 할 수 있 는 서버 환경 은 윈도 밖 에 없 기 때문에 번 거 로 워 도 괴롭혀 야 한다.
    docker 를 실현 하 는 세 가지 방법 이 있 습 니 다.
  • 하 나 는 docker tools 를 사용 하 는 것 이다. 그 원 리 는 바로 Windows 에 가상 컴퓨터 를 설치 하고 그 안에 Liux 를 뛰 고 docker 를 뛰 는 것 이다.
  • 하 나 는 윈도 우 를 win 10 또는 win server 2019 이상
  • 으로 업그레이드 하 는 것 이다.
  • 마지막 으로 가상 컴퓨터 로 Liux 를 설치 한 다음 에 docker
  • 를 설치 하 는 것 이다.
    이런 방법 들 을 나 는 모두 시험 해 보 았 다. 첫 번 째 방법의 docker 버 전 은 비교적 낡 았 고 docker tool 은 이미 버 려 졌 으 며 후기 에 문제 가 발생 하면 확실히 비교적 번거롭다.두 번 째 방법 은 공식 적 인 추천 모델 이지 만 제 가 한 동안 사용 한 후에 bug 가 발생 한 것 을 발 견 했 습 니 다. 인터넷 에서 자 료 를 찾 아 보면 Windows 버 전의 docker 솔 루 션 이 거의 없어 서 진도 가 좌초 되 었 습 니 다.
    그래서 마지막 으로 세 번 째 방안 을 쓰기 로 했다.
    가상 컴퓨터 를 설치 하 다
    vmware 설치 및 활성화
    네트워크 설정
    먼저 네트워크 설정 입 니 다. 먼저 ADD 해 볼 수 있 습 니 다. 일반적으로 지금 은 네트워크 카드 와 네트워크 ip 이 없습니다.
    CentOS 6 에서 네트워크 설정 과 정적 IP 설정 은 ip addr 파일 에 설정 되 어 있 습 니 다. CentOS 7 네트워크 카드 명령 규칙 이 바 뀌 었 습 니 다. 명명 규칙 은 시스템 펌웨어 와 하드웨어 에 따라 /etc/sysconfig/network-scripts/ifcfg-eth0 형식 으로 명명 되 었 습 니 다. 새로운 명명 규칙 을 찾 을 수 없 는 경우 에 만 eth 0 과 같은 스타일 을 사용 합 니 다.(시스템 이 이런 변 화 를 한 이 유 는 하드웨어 를 호 환 하 는 데 유리 하고 관심 이 있 는 사람 은 스스로 깊이 이해 할 수 있 습 니 다. 여 기 는 전개 하지 않 습 니 다. 제 컴퓨터 네트워크 카드 는 ifcfg-en* 입 니 다. /etc/sysconfig/network-scripts/ifcfg-enp33 을 사용 하여 이 파일 을 엽 니 다 (최소 설치 기본 값 은 vi 만 있 고 vim 이 없습니다). 다음 과 같은 내용 을 수정 합 니 다.
    BOOTPROTO=dhcp #     dhcp,dhcp           IP,dhcp   ip                
    ONBOOT=yes #           
    DNS1=8.8.8.8 #   dns   ,     ,       
    # 8.8.8.8  Google       DNS   ip
    
    vi /etc/sysconfig/network-scripts/ifcfg-enp33 저장 종료 후 :wq 다시 시작 하면 네트워크 가 활성화 되 었 습 니 다.
    xshell 연결
  • service network restart IP 를 찾 으 면 계 정 비밀 번 호 를 입력 하면 연결 할 수 있 습 니 다.
  • 파일 전송 기능 설치
  • yum 설치.
    yum install  lrzsz -y
    

    설치 성공 여 부 를 확인 합 니 다.
    rpm -qa |grep lrzsz
    

    파일 업로드 명령:
    rz
    

    로 컬 선택 파일 대화 상 자 를 열 고 파일 을 선택 하면 현재 디 렉 터 리 에 업로드 할 수 있 습 니 다.
    원본 파일 을 덮어 쓰 면 실행:
    rz   -y
    

    파일 다운로드, 실행:
    sz
    

    로 컬 저장 파일 선택 대화 상 자 를 팝 업 합 니 다.
    여기 서도 Xftp 를 선택 하여 파일 전송 을 실현 할 수 있 습 니 다. 이것 은 상당히 강력 한 소프트웨어 입 니 다.
    docker 설치
    설치 하 다.
    yum install docker
    

    설치 가 완료 되면 아래 명령 을 사용 하여 docker 서 비 스 를 시작 하고 이 를 시작 으로 설정 합 니 다.
    systemctl  start docker.service
    systemctl  enable docker.service
    

    Docker 중국 가속 기 를 사용 하 는 것 이 중요 합 니 다.
    vi  /etc/docker/daemon.json
    
    #   :{
        "registry-mirrors": ["https://registry.docker-cn.com"],
        "live-restore": true
        }
    

    다시 시작
    docker systemctl restart docker
    

    버 전 정 보 를 입력 ip addr 하면 정상적으로 설 치 됩 니 다.
    JDK 설치
    yum -y install java-1.8.0-openjdk*
    

    환경 변수 설정 열기 docker version 내용 추가
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64 
    export PATH=$PATH:$JAVA_HOME/bin 
    

    수정 이 완 료 된 후, 그것 을 효력 이 발생 하 게 하 다.
    source /etc/profile`
    

    버 전 정 보 를 입력 vim /etc/profile 하면 정상적으로 설 치 됩 니 다.
    MAVEN 설치
    다운로드:http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
    ##   tar vxf apache-maven-3.6.3-bin.tar.gz
    ##   mv apache-maven-3.6.3 /usr/local/maven3
    

    소프트 연결 만 들 기
    ln -s apache-maven-3.6.3 maven
    

    환경 변 수 를 수정 하여 java -version 다음 줄 을 추가 합 니 다.
    MAVEN_HOME=/usr/local/maven
    export MAVEN_HOME
    export PATH=${PATH}:${MAVEN_HOME}/bin
    

    환경 변 수 를 적용 하기 위해 실행 /etc/profile 을 기억 하 십시오.
    버 전 정 보 를 입력 source /etc/profile 하면 정상적으로 설 치 됩 니 다. 그러면 전체 구축 환경 이 설정 되 었 습 니 다.
    Docker 를 사용 하여 Spring Boot 프로젝트 배치 하기
    프로젝트 복사 서버 에서 프로젝트 경로 에 들 어가 포장 테스트 를 진행 합 니 다.
    #  
    mvn package
    

    다음은 DockerFile 을 사용 하여 미 러 를 구축 합 니 다.
    mvn package docker:build
    

    첫 번 째 구축 은 느 릴 수 있 습 니 다. 다음 과 같은 내용 을 볼 때 구축 성공 을 나타 냅 니 다.
    ...
    Step 1 : FROM openjdk:8-jdk-alpine
     ---> 224765a6bdbe
    Step 2 : VOLUME /tmp
     ---> Using cache
     ---> b4e86cc8654e
    Step 3 : ADD spring-boot-docker-1.0.jar app.jar
     ---> a20fe75963ab
    Removing intermediate container 593ee5e1ea51
    Step 4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
     ---> Running in 85d558a10cd4
     ---> 7102f08b5e95
    Removing intermediate container 85d558a10cd4
    Successfully built 7102f08b5e95
    [INFO] Built springboot/spring-boot-docker
    [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------[INFO] Total time: 54.346 s
    [INFO] Finished at: 2020-03-03T16:20:15+08:00
    [INFO] Final Memory: 42M/182M
    [INFO] ------------------------------------------------------------------------
    

    docker images 명령 으로 구 축 된 미 러 보기:
    docker images
    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
    springboot/spring-boot-docker   latest              99ce9468da74        6 seconds ago       117.5 MB
    

    springboot / spring - boot - docker 는 우리 가 구축 한 미 러 입 니 다. 다음 단 계 는 이 미 러 를 실행 하 는 것 입 니 다.
    docker run -p 8080:8080 -t springboot/spring-boot-docker
    

    시작 이 끝 난 후에 우 리 는 docker ps 를 사용 하여 실행 중인 미 러 를 봅 니 다:
    docker ps
    CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
    049570da86a9        springboot/spring-boot-docker   "java -Djava.security"   30 seconds ago      Up 27 seconds       0.0.0.0:8080->8080/tcp   determined_mahavira
    

    우리 가 구축 한 용기 가 실행 중인 것 을 볼 수 있 습 니 다. 브 라 우 저 를 방문 하 십시오. mvn -version Hello Docker 로 돌아 갑 니 다!
    Docker 를 사용 하여 Spring Boot 프로젝트 를 성공 적 으로 배 치 했 음 을 설명 합 니 다!
    이상 이것 은 가장 기본 적 인 dockerfile 배치 방법 입 니 다. 이 방법 을 파악 한 후에 다른 배치 방법 도 있 습 니 다.
  • Dockerfile 로 Spring Boot 를 배치 하지 말고 dockerhub 클 라 우 드 배치
  • Jenkins 원 키 포장 배치 SpringBoot 응용
  • 닥 친 문제
  • Linux 에 maven, mvn - v 를 설치 한 오류: JAVA HOME should point to a JDK not a JRE
  • Xshell 이 가상 컴퓨터 에 연결 되 지 않 는 문제 와 해결 방법
  • 구축 프로젝트 실패 해결 방안
  • 좋은 웹페이지 즐겨찾기