Spring Boot 는 Docker 를 이용 하여 프로젝트 의 전체 절 차 를 빠르게 배치 합 니 다.

1.프로필
본문 을 읽 는 것 은 Dokcer 에 대해 좀 이해 하 는 것 이 좋 습 니 다.
일단 Docker 가 뭔 지 알 아 보도 록 하 겠 습 니 다.
Docker 는 Linux 용기 의 패키지 로 간단 하고 사용 하기 쉬 운 용기 사용 인 터 페 이 스 를 제공 합 니 다.그것 은 현재 가장 유행 하 는 Linux 용기 솔 루 션 이다.
Docker 는 프로그램 과 이 프로그램의 의존 도 를 파일 에 압축 합 니 다.이 파일 을 실행 하면 가상 용기 가 생 성 됩 니 다.프로그램 이 이 가상 용기 에서 실행 되 는 것 은 마치 실제 물리 기 에서 실행 되 는 것 과 같다.Docker 가 있 으 면 환경 문 제 를 걱정 할 필요 가 없습니다.
전체적으로 말 하면 Docker 의 인 터 페 이 스 는 상당히 간단 하고 사용 자 는 용 기 를 편리 하 게 만 들 고 사용 하여 자신의 응용 을 용기 에 넣 을 수 있다.용 기 는 일반적인 코드 를 관리 하 는 것 처럼 버 전 관리,복사,공유,수정 도 할 수 있다.
Docker 는 무슨 용도 로 쓰 입 니까?
4.567917.일회 성 환경 제공탄력 적 인 클 라 우 드 서 비 스 를 제공 합 니 다
  • 마이크로 서비스 구 조 를 구성한다
  • 어떻게 Docker 환경 을 구축 합 니까?
    yum 설치 사용
    
    #          
    uname -r
    
    #   Docker
    yum -y install docker
    
    #   Docker     
    service docker start
    
    #     hello-world,      hello-world    ,       hello-world   ,       。
    docker run hello-world
    스 크 립 트 설치:
    
    #   yum       
    sudo yum update
    
    #   Docker     ,          docker.repo      Docker。
    curl -fsSL https://get.docker.com/ | sh
    
    #   Docker   
    sudo service docker start
    
    #   docker                     
    sudo docker run hello-world
    국내 다운로드 미 러 속도 가 느 리 기 때문에 국내 로 교 체 된 미 러 소스 를 추천 합 니 다.
    명령 을 집행 하 다
    
    vim /etc/docker/daemon.json
          
    {
     "registry-mirrors": ["<your accelerate address>"]
    }
    2.프로젝트 만 들 기
    먼저 SpringBoot 프로젝트 를 만 듭 니 다.이 절 차 는 중복 되 지 않 습 니 다.IDEA 구축 이나 방문SpringBoot프로젝트 를 통 해 프로젝트 를 구축 할 수 있 습 니 다.
    완전한 프로젝트 구조:
    boot-docker
    ├── pom.xml
    └── src
        ├── main
        │   ├── java
        │   │   └── com
        │   │       └── example
        │   │           └── bootdocker
        │   │               └── BootDockerApplication.java
        │   └── resources
        │       ├── application.properties
        │       ├── static
        │       └── templates
    그리고 컨트롤 러 를 만 듭 니 다.여 기 는 너무 복잡 하지 않 습 니 다.주로 Docker 가 프로젝트 를 어떻게 배치 하 는 지 보 여 주 는 것 입 니 다.
    주 코드:

    시작 하고 브 라 우 저 액세스 인터페이스 주소 열기:

    프로젝트 가 완료 되 었 습 니 다.지금부터 Docker 에 배치 합 니 다.
    3.프로젝트 배치
    3.1 Dockerfile 사용
    프로젝트 를 배치 하기 전에 Dockerfile 이 무엇 인지 알 아 봐 야 합 니 다.
    Dockfile 은 Docker 프로그램 에 의 해 해 해 석 된 스 크 립 트 입 니 다.Dockerfile 은 하나의 명령 으로 구성 되 고 모든 명령 은 Linux 아래 의 명령 에 대응 합 니 다.Docker 프로그램 은 이 Dockerfile 명령 을 실제 Linux 명령 으로 번역 합 니 다.Dockerfile 은 자신 이 작성 한 형식 과 지원 하 는 명령 이 있 습 니 다.Docker 프로그램 은 이 명령 들 간 의 의존 관 계 를 해결 합 니 다.Makefile 과 유사 합 니 다.Docker 프로그램 은 Dockerfile 을 읽 고 명령 에 따라 맞 춤 형 이미 지 를 생 성 합 니 다.image 라 는 블랙박스 보다 Dockerfile 이라는 뻔 한 스 크 립 트 는 사용자 에 게 쉽게 받 아들 여지 고 image 가 어떻게 생 겼 는 지 명확 하 게 보 여 줍 니 다.Dockerfile 이 있 습 니 다.우리 가 추가 적 인 요 구 를 맞 춰 야 할 때 Dockerfile 에 명령 을 추가 하거나 수정 하면 image 를 다시 만 들 면 명령 을 두 드 리 는 번 거 로 움 을 줄 일 수 있 습 니 다레 퍼 런 스
    우 리 는 먼저 프로젝트 를 포장 하여 집행 하고 집행 한다.
    
    mvn package
    Dockerfile 파일 만 들 기
    
    touch Dockerfile 
    Dockerfile 에 다음 정 보 를 추가 합 니 다.
    Dockerfile 은 Jar 와 같은 경로 에 있어 야 합 니 다.
    
    FROM java:8
    EXPOSE 8080
    VOLUME /slm
    ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar
    RUN sh -c 'touch /boot-docker.jar'
    ENV JAVA_OPTS=""
    ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /boot-docker.jar" ]
  • FROM 기초 미 러 필요,당신 을 대표 하 는 프로젝트 는 이 기초 위 에 구 축 될 것 입 니 다
  • EXPOSE 는 지정 한 포트 리 트 윗 을 허용 합 니 다
  • VOLUME 는 로 컬 호스트 나 다른 용기 에서 마 운 트 할 수 있 는 마 운 트 지점 을 만 듭 니 다.일반적으로 데이터 베 이 스 를 저장 하고 유지 해 야 할 데이터 등 을 저장 합 니 다
  • ADD 는 파일 을 경로 에서ENV 는 docker 용기 에 환경 변 수 를 설정 하 는 데 사용 할 수 있 습 니 다
  • ENTRYPOINT 가 Docker image 를 instance(즉 Docker container)로 실행 할 때 실행 할 명령 이나 파일 을 지정 합 니 다.
  • CMD 와 ENTRYPOINT 는 실행 을 시작 하 는 프로그램 을 지정 할 수 있 고 이 두 명령 은 모두 두 가지 사용 하지 않 는 문법 이 있다
  • 
    CMD ["ls",''-l"]
    CMD ls -l
    빌 드 시작:
    
    docker build -t boot-docker .
    -t boot-docker 는 당신 이 구축 하고 자 하 는 이름 을 대표 합 니 다.
    더 많은 매개 변수 입력 보기:docker build --help콘 솔 출력:
    Sending build context to Docker daemon  16.81MB
    Step 1/7 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/7 : EXPOSE 8080
     ---> Using cache
     ---> b2445bf62da8
    Step 3/7 : VOLUME /slm
     ---> Using cache
     ---> b73d0b73b868
    Step 4/7 : ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar
     ---> Using cache
     ---> 2b4868aafca9
    Step 5/7 : RUN sh -c 'touch /boot-docker.jar'
     ---> Using cache
     ---> 816b59f199af
    Step 6/7 : ENV JAVA_OPTS=""
     ---> Using cache
     ---> 784f033b9dd6
    Step 7/7 : ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /boot-docker.jar" ]
     ---> Using cache
     ---> 92a0da91ea19
    Successfully built 92a0da91ea19
    Successfully tagged bootdocker:latest
    빌 드 가 완료 되 었 음 을 볼 수 있 습 니 다.Successfully built 92a0da 91ea 19 라 는 말 은 방금 구 축 된 미 러 ID 를 가리 키 고 있 습 니 다.이제 이 ID 에 따라 조작 할 수 있 습 니 다.
    run 명령 을 입력 하여 시작 합 니 다.
    
    docker run -d -p 8080:8080 92a0da91ea19
    콘 솔 출력:
    
    root@izz30yg92yl9i3z /# docker run -d -p 8080:8080 92a0da91ea19
    62b837ac75e3d83a4be2d7b0f6edee5ff70c69a98bac4ff74c7ed6d3e70282ee
    root@izz30yg92yl9i3z /#
    -d 배경 실행 표시
    -p 매 핑 포트
    인터페이스 에 성공 적 으로 접근 하 였 습 니 다.여기 주의 하 세 요.호스트 의 포트 가 매 핑 되 어 있어 서 호스트 의 IP 포트 에 접근 하 였 습 니 다.

    더 많은 매개 변수 입력 보기:docker build --help3.2 Maven 구축 사용
    Dockerfile 로 구축 하 라 고 했 는데 지금 Maven 으로 구축 하고 있 습 니 다.
    pom 에 docker 구축 의존 도 를 추가 합 니 다.
    
     <plugin>
        <!--   docker maven  -->
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>0.4.13</version>
        <configuration>
         <!--    -->
         <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
          <!--DokcerFile    -->
         <dockerDirectory>/slm/</dockerDirectory>
         <resources>
          <resource>
           <targetPath>/</targetPath>
           <directory>${project.build.directory}</directory>
           <include>${project.build.finalName}.jar</include>
          </resource>
         </resources>
        </configuration>
       </plugin>
    dockerDirectory 에 서 는 Dockerfile 파일 의 경 로 를 설정 해 야 합 니까?
    프로젝트 를 Linux 호스트 에 복사 하여 압축 해제 명령 을 실행 합 니 다.
    
    unzip boot-docker.zip
    cd boot-docker
    명령 실행:
    
    mvn package docker:build
    콘 솔 출력:
    [INFO] Building image boot-docker/boot-docker
    Step 1/7 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/7 : EXPOSE 8080
     ---> Using cache
     ---> b2445bf62da8
    Step 3/7 : VOLUME /slm
     ---> Using cache
     ---> b73d0b73b868
    Step 4/7 : ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar
     ---> Using cache
     ---> 2b4868aafca9
    Step 5/7 : RUN sh -c 'touch /boot-docker.jar'
     ---> Using cache
     ---> 816b59f199af
    Step 6/7 : ENV JAVA_OPTS=""
     ---> Using cache
     ---> 784f033b9dd6
    Step 7/7 : ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /boot-docker.jar" ]
     ---> Using cache
     ---> 92a0da91ea19
    ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
    Successfully built 92a0da91ea19
    Successfully tagged boot-docker/boot-docker:latest
    [INFO] Built boot-docker/boot-docker
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 19.908s
    [INFO] Finished at: Wed Jul 10 16:00:21 CST 2019
    [INFO] Final Memory: 35M/86M
    [INFO] ------------------------------------------------------------------------
    위 와 같다.시동 을 걸다

    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기