docker-compose
docker-compose 에 대한 이해
sudo docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root <docker IMAGE>
이렇게 매번 sudo를 작성해야 한다면 너무 고통스러울 것이다.
그래서 존재하는 것이 docker-composer
docker-composer는 컨테이너가 많아질수록 관리하기가 더욱 어려워지는데
컨테이너 관리를 도와주는 역할을 한다.
우리가 Jenkins를 구동할 때
docker-compose 설치
docker를 설치한다고해서 docker-compose가 같이 설치되지 않는다
그래서 따로 설치를 해주어야 한다.
docker-compose 공식 문서에 나와있는 최신 버전으로 다운로드를 진행했다.
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
설치가 진행되고 난 후의 모습
그 다음으로는 권한 설정을 해주어야 한다.
sudo chmod +x /usr/local/bin/docker-compose
마지막으로 잘 설치되었는지 버전확인
잘 설치가 되었다.
참고한 사이트 : docker-compose 설치, docker-compose install 공식문서
docker-compose와 Jenkins연결
docker-composer 의 version 에 관한 내용 : docker-compose version
services 아래는 container의 이름이 온다. 우리는 jenkins 라고 설정해주었다.
dockerfile 에서 사용되는 volume과 같이 컨테이너에 볼륨을 명시해준다.
ports 에서는 외부:내부 에서 사용할 port를 지정해준다.
요기서는 8080으로 세팅해서 8080으로 접근을 하면 컨테이너의 8080을 바라보게 된다.
그 다음에
docker-compose up -d
명령어를 통해서 컨테이너를 만들어준다.
-d 옵션은 백그라운드에서 실행한다는 의미이다.
실행된 컨테이너를 확인
마지막으로 localhost:8080 에 접속해본다.
성공적으로 뜨는 것을 확인할 수 있다.
docker-compose와 nexus연결
docker-compose와 nexus를 연결하기위해 아까 Jenkins를 연결한것과 비슷하게 작성해준다.
8081번 포트로 연결해주고 똑같이 docker-compose up -d 명령어로 실행해주면
위와 같이 nexus와 jenkins가 동시에 실행이 된다.
docker ps 로 확인해봐도 잘 실행이 되었다.
지금까지 Jenkins는 localhost:8080 에서 실행
Nexus는 <ip주소>:8081 에서 실행된다. (내 컴퓨터는 http://127.0.0.1:8081/ 에서 실행)
참고한 사이트 : docker로 nexus 설치하기, docker로 Sonatype Nexus 설치
docker-compose와 tomcat연결
docker-compose.yml 파일을 수정해준다.
이미지 이름은 tomcat 으로 저장되어있고,
컨테이너 이름은 tomcat으로 지정해준다.
그리고 로컬에 저장 될 위치는 /app/tomcat 이고
컨테이너 안의 logs 의 위치는 /usr/local/tomcat/logs 이다.
포트번호는 8082번으로 들어가면 8080으로 맵핑해주고
유저는 root로 지정해주었다.
docker-compose up -d
를 통해서 실행시켜준 결과 정상적으로 돌아간다.
docker-compose와 mariaDB연결
docker-compose.yml 파일에 이어서 mariadb도 연결해준다.
image: mariadb
image는 mariadb를 사용
restart: always
컨테이너들을 수동으로 끄지 않았다면 항상 재시작
container_name: mariadb
컨테이너 이름은 mariadb로 설정
volumes
지정된 경로의 볼륨을 마운트 해준다.
environment (환경변수)
컨테이너를 시작할 때 항상 MYSQL의 비밀번호는 admin 으로 지정해준다.
ports
포트번호는 3306번
user: root
유저는 root로 지정
그 다음에
docker-compose up -d
를 실행 시켜주면
'Kubernetes & Docker' 카테고리의 다른 글
쿠버네티스 공식문서 파헤치기 : 클러스터 아키텍처 (0) | 2020.07.15 |
---|---|
쿠버네티스 공식문서 파헤치기 : 개요 (0) | 2020.07.15 |
Docker를 이용한 Tomcat Image pull & run (0) | 2020.07.10 |
Docker를 이용한 Nexus Image pull & run (0) | 2020.07.10 |
Docker를 이용한 MariaDB Image pull & run (0) | 2020.07.10 |