docker 배치 springboot
가장 간단 한 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 를 미 러 에 추가 하여 간단하게 설명 합 니 다.
/tmp
작업 디 렉 터 리 로 사용 합 니 다.이 명령 의 효 과 는 홈 호스트 /tmp
디 렉 터 리 에 임시 파일 을 만 들 고 용기 에 연결 하 는 /var/lib/docker
디 렉 터 리 /tmp
의 시스템 속성 지향 java.security.egd
을 ENTRYPOINT 메모: 위의 이
/dev/urandom
항목 명 (hello - docker) 과 버 전 번호 (0.0.1 - SNAPSHOT) 는 pom 파일 과 일치 해 야 합 니 다.포장 환경 구축
윈도 에 Docker 환경 을 구축 하 는 것 은 매우 번 거 롭 지만, 현재 이곳 에서 제공 할 수 있 는 서버 환경 은 윈도 밖 에 없 기 때문에 번 거 로 워 도 괴롭혀 야 한다.
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 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 배치 방법 입 니 다. 이 방법 을 파악 한 후에 다른 배치 방법 도 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.