DockerFile 은 코드의 형태로 인프라를 구성하는 방법을 텍스트 형식으로 저장해 놓은 파일이며 docker build 를 사용하여 자신만의 이미지를 만들 수 있다.
1.2 Docker Build 란?
DockerFile 및 컨텍스트로부터 이미지를 빌드하는 Docker 명령
1.3 Docker-Compose 란?
Compose는 멀티 컨테이너 도커 애플리케이션을 정의하고 실행하는 도구이다. YAML 파일을 사용하여 애플리케이션의 서비스를 구성하며 하나의 명령을 가지고 모든 컨테이너의 생성 및 시작 프로세스를 수행한다.
1.4 Jenkins 란?
소프트웨어 개발 시 지속적 통합(continuous integration) 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다.
FROM centos:7.9.2009
#서버 시간 설정
ENV TZ Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#서버 홈폴더 설정
RUN mkdir /home/jenkins
#서버 yum update 및 openjdk 설치
RUN yum update -y && yum install epel-release java-11-openjdk-devel -y
#tomcat+jenkins 압축 파일 복사
COPY apache-tomcat-9.0.8-pre-install.tar.gz /home/jenkins/apache-tomcat-9.0.8.tar.gz
#압축 해제
RUN cd /home/jenkins && tar -zxvf apache-tomcat-9.0.8.tar.gz
#서비스 포트 지정
EXPOSE 80
#작업 폴더 설정
WORKDIR /home/jenkins
#Tomcat 서비스 시작
CMD ["/home/jenkins/apache-tomcat-9.0.8/bin/catalina.sh", "run"]
2.4 DockerFile Build 후 Docker Hub 업로드 하기
Step1. docker loign
Step2. 작성 한 DockerFile 에서 빌드 하기
• docker build -t tomcat_mariadb:jenkins1.0 .
• docker images ## 로컬에 저장된 Docker Images 확인
Step3. 로컬에 만든 이미지 실행 및 확인
• docker run -d -p 80:80 tomcat_mariadb:jenkins1.0
Step4. Docker Hub 이미지 업로드
• docker tag tomcat_mariadb:jenkins1.0 bchwang/tomcat_mariadb:jenkins1.0
• docker push bchwang/tomcat_mariadb:jenkins1.0
Step5. Docker Hub 에 등록된 이미지 확인
• Docker Hub 에 개인 개정으로 로그인 후 Docker Image 및 Tag 확인
Step6. Docker Hub 에 등록된 이미지로 실행 하기
• docker run -d -p 80:80 bchwang/tomcat_mariadb:jenkins1.0
3. docker 를 이용하여 실행 하기
3.1 docker 실행 하기
# docker run --name project1 -d -p 80:80 bchwang/tomcat_mariadb:jenkins1.0
Unable to find image 'bchwang/tomcat_mariadb:jenkins1.0' locally
jenkins1.0: Pulling from bchwang/tomcat_mariadb
Digest: sha256:a44086d7242cd88c5e1abef7a99c5a5bd5fe1762e5eaa8ce58c2232e75eeff05
Status: Downloaded newer image for bchwang/tomcat_mariadb:jenkins1.0
e54875e866040c63e383de6424a516398ebe7ef3235994d4a2d9c9ffa895cd49
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c12c471ad47 bchwang/tomcat_mariadb:jenkins1.0 "/home/jenkins/apach…" 24 seconds ago Up 22 seconds 0.0.0.0:80->80/tcp project1
# docker logs -f project1
07-Feb-2022 13:29:42.336 INFO [Finalizing set up] jenkins.install.SetupWizard.init
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
75c34fe2059a4ec69b1d0e6e03e3ffed #### Jenkins 초기 비밀번호
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
3.2 Tomcat+Jenkins 설정 확인
3.2.1 Tomcat 설정 확인(server.xml)
Tomcat 서비스 포트(80) 설정 하기 위해 server.xml 파일을 수정 하여 적용
version: '2'
services:
tomcat_jenkins1.0:
image: bchwang/tomcat_mariadb:jenkins1.0
ports:
- '80:80'
volumes:
# data 폴더와 instance 폴더 동기
- "./data:/home/jenkins/data:rw"
# context.xml 파일(Tomcat Manager 접근 제한 설정)
#- "./conf/context.xml:/home/jenkins/apache-tomcat-9.0.8/webapps/manager/META-INF/context.xml"
# server.xml 파일(Tomcat Serivce Port 설정)
#- "./conf/server.xml:/home/jenkins/apache-tomcat-9.0.8/conf/server.xml"
# tomcat-users.xml 파일(Tomcat Manager User/Password 설정 :: admin / 1234)
#- "./conf/tomcat-users.xml:/home/jenkins/apache-tomcat-9.0.8/conf/tomcat-users.xml"
4.2 docker-compose 실행 방법
# docker-compose up -d
Creating network "jenkins_default" with the default driver
Creating jenkins_tomcat_jenkins1.0_1 ... done
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
450fb13bace8 bchwang/tomcat_mariadb:jenkins1.0 "/home/jenkins/apach…" 5 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp jenkins_tomcat_jenkins1.0_1
# docker exec -it 450fb13bace8 /bin/bash
[root@450fb13bace8 jenkins]# ls
apache-tomcat-9.0.8 apache-tomcat-9.0.8.tar.gz data