English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 기사는 이전 기사에서 설명한 Javaweb 프로젝트를 Docker 이미지로 만드는 방법에 대해 설명합니다. 편집자는 이를 매우 좋게 생각하며, 모두와 공유하고 참고하기 위해 소개합니다. 편집자와 함께 둘러보세요
Docker 컨테이너에서 실행되는 애플리케이션과 물리 머신에서 실행되는 원리는 같습니다. 따라서 이 Javaweb 프로젝트를 Docker에 배포하는 단계는 다음과 같아야 합니다:
步骤已经很清楚了,但要制作Docker镜像还得借助另一样东西:Dockerfile。
Dockerfile은 Docker가 인식할 수 있는 특수 명령어를 포함한 파일입니다. Dockerfile 파일을 생성하면 docker build를 사용하여 Docker 이미지를 생성할 수 있습니다.
Docker 이미지 구축 시작
구조는 다음과 같습니다:
Docker 이미지 구조도 생성
이미지 생성
docker build -t "zsl131/web01" .
주의:
docker build:Docker 이미지 생성
-t "zsl131/web01":이미지 이름을 지정합니다. 여기서는 zsl을 지정합니다131/web01;이미지 이름은 저장소와 이름으로 구성됩니다. zsl131는 제가 hub.docker.com에 등록한 저장소 이름입니다. web01는 이 이미지의 이름입니다
.:앞에 공백이 있어 현재 디렉토리에 있는 Dockerfile 파일을 찾아 이미지를 구축합니다
아래는 이 예제에서 생성한 Docker 이미지의 Dockerfile입니다. Dockerfile을 더 잘 이해하기 위해 아래 파일의 모든 명령어를 지우고, 각 행을 추가하여 docker build를 실행할 수 있습니다:docker build -t "zsl131/web01" .,이렇게 하면 Dockerfile을 사용하여 이미지를 구축할 때의 다양한 정보를 볼 수 있습니다:
#Centos7로 기본 이미지로 사용합니다 FROM centos:7 # JDK를 설치하는 방법을 알 수 없을 때 아래 명령어를 사용할 수 있습니다. 그런 다음 docker build를 직접 실행합니다 #RUN yum search java | grep jdk # 적합한 JDK 버전을 선택하여 설치합니다 RUN yum install -y java-1.7.0-openjdk.x86_64 # 루트 디렉토리에 web이라는 이름의 디렉토리를 생성합니다 RUN mkdir /web/ # 작업 디렉토리를 설정합니다/web,설정 후 사용할 수 있습니다:RUN pwd로 현재 경로를 확인할 수 있습니다 WORKDIR /web/ # wget을 설치하여 톰캣 다운로드를 쉽게 할 수 있도록 합니다 RUN yum install -y wget # 톰캣 압축 파일을 다운로드합니다 RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz # 톰캣 파일을 압축해제합니다 RUN tar zxvf apache-tomcat-6.0.48.tar.gz # 도구 디렉토리를 설정합니다 WORKDIR /web/apache-tomcat-6.0.48/webapps/ROOT/ # 현재 디렉토리에 있는 모든 파일(폴더)을 보면 톰캣이 기본으로 포함하는 몇 가지 파일이 있습니다 RUN ls -l # 현재 디렉토리에 있는 모든 파일(폴더)을 삭제합니다 RUN rm -rf * # 다시 목록을 보면 파일이 없습니다 RUN ls -l # WebRoot 디렉토리에 있는 모든 파일(폴더)을 현재 디렉토리에 복사합니다(webapps/ROOT),여기서도 COPY 명령어를 사용할 수 있습니다 ADD WebRoot . # 복사가 완료되면 성공적으로 복사되었는지 확인할 수 있습니다 RUN ls -l # 작업 디렉토리를 톰캣의 bin 디렉토리로 설정하여 톰캣 서비스를 쉽게 시작할 수 있도록 합니다 WORKDIR /web/apache-tomcat-6.0.48/bin/ # 톰캣을 외부로 노출합니다8080 포트 EXPOSE 8080 # 톰캣 서비스를 시작합니다. 이렇게 시작하면 docker run 시 덮어쓰이지 않습니다 ENTRYPOINT ["./catalina.sh", "run"]
Dockerfile을 작성한 후, 마지막으로 다음 명령어를 통해 이미지를 구축합니다:
docker build -t "zsl131/web01" .
docker images 명령어를 통해 최근에 구축한 이미지를 확인할 수 있습니다.
컨테이너 실행
docker run -d --name web01 -p 80:8080 zsl131/web01
설명:
docker run: 컨테이너 실행 명령어
-d:백그라운드에서 실행
--name web01:컨테이너 이름을 web0으로 설정합니다.1
-p 80:8080: 외부로 노출되는 포트를 지정합니다.80에 매핑됩니다. 즉, 외부에서 접근할 때80 포트가 컨테이너 내부의8080 포트
zsl131/web01:이미지 이름
컨테이너 시작 로그 보기
docker logs web01
설명:
docker logs: 컨테이너 로그 보기 명령어
web01:검토되는 컨테이너 이름, 여기서는 web01
접근
브라우저를 열고 입력하세요: http://192.168.99.100을 통해 MyEclipse가 만든 Javaweb 프로젝트에 접근할 수 있습니다.
주의:192.168.99.100은 docker 호스트의 IP 주소이며, docker를 통해-machine inspect test01보기에 오세요. 중에서 test01docker 호스트의 이름입니다.
이것이 이 문서의 전체 내용입니다. 많은 도움이 되었기를 바랍니다. 또한,呐喊 교본을 많이 지지해 주시기 바랍니다.
고지사항: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권자의 소유물입니다. 이 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공 편집을 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용을 발견하면 이메일을 notice#w로 보내 주세요.3codebox.com에 이메일을 보내면 (#을 @으로 변경해 주세요) 신고를 해 주시고 관련 증거를 제공해 주시면, 사실이 확인되면 이 사이트는 즉시 저작권 침해 내용을 삭제할 것입니다.