>  기사  >  데이터 베이스  >  Docker가 SpringBoot 프로젝트를 배포하고 액세스 계산을 위해 Redis 이미지를 통합하는 방법

Docker가 SpringBoot 프로젝트를 배포하고 액세스 계산을 위해 Redis 이미지를 통합하는 방법

WBOY
WBOY앞으로
2023-06-02 10:37:14746검색

최종 효과는 다음과 같습니다

Docker가 SpringBoot 프로젝트를 배포하고 액세스 계산을 위해 Redis 이미지를 통합하는 방법

몇 단계 소개

1. Docker CE 설치 2. Redis 이미지 실행 3. Java 환경 준비 4. 프로젝트 준비 5. Dockerfile 작성 6. 프로젝트 출시 7. 서비스 테스트

환경 준비

  • 시스템: Ubuntu 17.04 x64

  • Docker 17.12.0-ce

  • IP: 45.32.31.101

1. Docker CE 설치

사용을 권장하지 않음 중국: " "설치 스크립트", 다운로드 및 설치가 매우 느립니다. 설치하려면 1단계를 사용하세요. 아래 링크를 참조하세요. 기존 설치 방법

1. 기존 설치 방법

Ubuntu 17.04 x64 Docker CE 설치

2. 설치 스크립트

국내 설치에는 권장되지 않는 스크립트:

Docker CE 설치

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<output>
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
 sudo usermod -aG docker your-user
Remember that you will have to log out and back in for this to take effect!
WARNING: Adding a user to the "docker" group will grant the ability to run
 containers which can be used to obtain root privileges on the
 docker host.
 Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
 for more information.</output>

Docker CE 확인

hello-world 이미지를 실행하여 Docker CE가 올바르게 설치되었는지 확인하세요

$ sudo docker run hello-world
root@souyunku:~# sudo docker images
REPOSITORY TAG  IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 7 weeks ago 1.85kB

두 번째, Redis 이미지를 실행합니다

1. 이미지를 실행합니다

$ docker run --name redis-6379 -p 6379:6379 -d redis
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
c4bb02b17bb4: Pull complete 
58638acf67c5: Pull complete 
f98d108cc38b: Pull complete 
83be14fccb07: Pull complete 
5d5f41793421: Pull complete 
ed89ff0d9eb2: Pull complete 
Digest: sha256:0e773022cd6572a5153e5013afced0f7191652d3cdf9b1c6785eb13f6b2974b1
Status: Downloaded newer image for redis:latest
2f1f20f672e386a61644e1c08232ea34bdfd6a0c244b55fa833fcfd6dd207288

2. 이미지를 확인합니다

이미지 보기

root@souyunku:~# docker images redis
REPOSITORY TAG  IMAGE ID CREATED SIZE
redis latest 1e70071f4af4 4 weeks ago 107MB

이미지 프로세스 보기

root@souyunku:~# docker ps
CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
2f1f20f672e3 redis "docker-entrypoint.s…" 14 seconds ago Up 14 seconds 0.0.0.0:6379->6379/tcp redis-6379

컨테이너 프로세스 보기

root@souyunku:~# docker container ps
CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
2f1f20f672e3 redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:6379->6379/tcp redis-6379

3. Redis 서비스

redis-cli를 통해 Redis 서비스를 연결하고 저장된 데이터를 테스트하세요

root@souyunku:~# docker run -it --link redis-6379:redis --rm redis redis-cli -h redis -p 6379
redis:6379> set count 1
OK
redis:6379> get count
"1"
redis:6379> exit
root@souyunku:~#

3. Java 환경 준비

참고: 다음 단계를 읽어보세요! ! !

1. Java 환경은 Github Maven SpringBoot 샘플 프로젝트를 컴파일하고 준비하기 위한 것입니다

2. 또는 로컬로 컴파일하여 업로드할 수도 있습니다. 그런 다음 Jdk, Maven, Git을 설치하면 됩니다. 구성할 필요가 없습니다

1. Jdk 설치

JDK 다운로드 방법: 1

Linux 환경에서 jdk1.8을 다운로드하세요. jdk 설치 파일을 다운로드하려면 (공식 홈페이지)

http://www. oracle.com/technetwork/java/javase /downloads/jdk8-downloads-2133151.html

JDK 다운로드 방법: 2

Baidu Cloud Disk의 내 링크: http://pan.baidu.com/s/1jIFZF9s 비밀번호: u4n4

JDK 방법 다운로드:3

wget을 사용하여 다운로드하세요.

$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz

참고, 사용하는 경우: JDK 방법 다운로드: 3

그런 다음 다음 단계에서 jdk1.8.0_144를 jdk1.8.0_141

Start로 바꾸세요. 설치

/opt 디렉터리에 업로드

Unzip

$ cd /opt
$ tar zxvf jdk-8u144-linux-x64.tar.gz
$ mv jdk1.8.0_144/ /lib/jvm

환경 변수 구성

$ vi /etc/profile
#jdk
export JAVA_HOME=/lib/jvm
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

환경 변수를 유효하게 만들기

$ source /etc/profile

Verify

root@souyunku:~# java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)

2. Maven 설치

$ apt-get install maven

Maven 확인

root@souyunku:~# mvn -v
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /lib/jvm/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.10.0-35-generic", arch: "amd64", family: "unix"

3.

$ apt-get install git

Maven 확인

root@souyunku:~# git --version
git version 2.11.0

4. 프로젝트 준비

1. 프로젝트를 컴파일하세요

1. Maven 서버에서 직접 프로젝트를 컴파일하세요

git을 사용하여 프로젝트를 복제하세요

$ git clone https://github.com/souyunku/other-projects.git

maven을 사용하여 프로젝트를 컴파일하세요

$ cd other-projects/docker-spring-boot-demo/

2. 프로젝트 수정

Redis 서버 주소 spring.redis.host=45.32.44.217, 즉 Redis 이미지 실행 시 Redis가 외부 네트워크 서비스 0.0.0.0:6379로 수정되었습니다. ->6379/tcp

$ vi src/main/resources/application.properties
# Redis服务器地址
spring.redis.host=45.32.44.217
$ mvn package

target/ 디렉토리 0.0.1-SNAPSHOT.jar 프로젝트의 docker-spring-boot-demo-를 /opt 디렉토리에 복사합니다. 나중에 사용됩니다

$ cp target/docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /opt/

2. Maven으로 복사한 후 /opt 디렉터리에 업로드하세요. 나중에 사용됩니다

application.properties의 Redis 서버 주소를 수정하세요.

other-projects/docker-spring-boot-demo/src/main/resources/application.properties
# Redis服务器地址
spring.redis.host=45.32.44.217

다섯째, Dockerfile을 작성하세요

java:8 이미지를 기반으로 Dockerfile을 작성하세요.

$ cd /opt/
$ touch Dockerfile
$ vi Dockerfile

수정된 내용은 다음과 같습니다

# 基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器,也可以直接写成ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /souyunku-app.jar
ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar souyunku-app.jar
RUN bash -c 'touch /souyunku-app.jar'
# 开放80端口
EXPOSE 80
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/souyunku-app.jar"]

여섯번째, 프로젝트를 게시합니다

1. 이미지를 컴파일합니다

$ cd /opt/
$ docker build -t souyunku-app:v1 .

다음 내용을 참고하세요. 이는 Dockerfile이 올바르게 작성되었으며 이미지가 성공적으로 컴파일되었음을 증명합니다

Sending build context to Docker daemon 18.72MB
Step 1/6 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete 
fce5728aad85: Pull complete 
76610ec20bf5: Pull complete 
60170fec2151: Pull complete 
e98f73de8f0d: Pull complete 
11f7af24ed9c: Pull complete 
49e2d6393f32: Pull complete 
bb9cdec9c7f3: Pull complete 
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
 ---> Running in 0559a62b0cd5
Removing intermediate container 0559a62b0cd5
 ---> b1f3846913a4
Step 3/6 : ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar souyunku-app.jar
 ---> 9f60dad5d2ac
Step 4/6 : RUN bash -c 'touch /souyunku-app.jar'
 ---> Running in 39d5c09ab614
Removing intermediate container 39d5c09ab614
 ---> 2b691adf7922
Step 5/6 : EXPOSE 80
 ---> Running in 11a577437a23
Removing intermediate container 11a577437a23
 ---> 78815d6fe6b2
Step 6/6 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/souyunku-app.jar"]
 ---> Running in eca10fed3d02
Removing intermediate container eca10fed3d02
 ---> 8ec4e85a0f05
Successfully built 8ec4e85a0f05
Successfully tagged souyunku-app:v1

2. 이미지 보기

root@souyunku:/opt# docker images souyunku-app
REPOSITORY TAG  IMAGE ID CREATED SIZE
souyunku-app v1  8ec4e85a0f05 2 minutes ago 681MB

3. 이미지 실행

백그라운드 데몬이 실행된 후 컨테이너 포트를 외부 네트워크 포트 80

root@souyunku:/opt# docker run --name MySpringBoot -d -p 80:80 souyunku-app:v1
e68d438603619e363883d4eae65d3918e1c3e00f867731207bccf06f5690dc64
에 매핑합니다.

4. 프로세스 보기

컨테이너 프로세스를 볼 수 있습니다. redis는 포트 6379에 있고 MySpringBoot 프로젝트는 포트 80

root@souyunku:/opt# docker container ps
CONTAINER ID IMAGE COMMAND  CREATED STATUS PORTS  NAMES
e68d43860361 souyunku-app:v1 "java -Djava.securit…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp MySpringBoot
0f9646171edd redis "docker-entrypoint.s…" 39 minutes ago Up 39 minutes 0.0.0.0:6379->6379/tcp redis-6379

7에 있습니다. 테스트 서비스

브라우저 액세스: http://127.0.0.1/, 물론 127.0.0.1을 입력하지 않았습니다. 공용 IP를 사용하여 서버에서 직접 수행했습니다.

Docker Compose

Docker Compose는 Docker의 공식 오케스트레이션 프로젝트 중 하나이며 클러스터에 분산 애플리케이션을 빠르게 배포하는 역할을 합니다.

Docker 컨테이너를 사용하는 애플리케이션은 일반적으로 여러 컨테이너로 구성됩니다. Docker Compose 를 사용하면 더 이상 컨테이너를 시작하기 위해 셸 스크립트를 사용할 필요가 없습니다. 구성 파일에서 모든 컨테이너는 서비스로 정의된 다음 docker-compose 스크립트를 사용하여 애플리케이션, 애플리케이션의 서비스 및 서비스에 의존하는 모든 컨테이너를 시작, 중지 및 다시 시작합니다.

위 내용은 Docker가 SpringBoot 프로젝트를 배포하고 액세스 계산을 위해 Redis 이미지를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제