최종 효과는 다음과 같습니다
몇 단계 소개
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!