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 공식문서
Install Docker Compose
You can run Compose on macOS, Windows, and 64-bit Linux. Prerequisites Docker Compose relies on Docker Engine for any meaningful work, so make sure you have Docker Engine installed either...
docs.docker.com
docker compose 사용 방법
용도에 따라서 docker 컨테이너를 한개 또는 그 이상 생성할 수 있습니다. 이 컨테이너들을 하나로 통합해야 하는 경우가 발생하는데, 이때 docker compose는 유용하게 사용이 가능합니다.
medium.com
docker-compose와 Jenkins연결
docker-composer 의 version 에 관한 내용 : docker-compose version
Compose file version 2 reference
Reference and guidelines These topics describe version 2 of the Compose file format. Compose and Docker compatibility matrix There are several versions of the Compose file format – 1, 2,...
docs.docker.com
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 Registry 만들기 (Nexus3 기반)
Private Docker Registry 라고도 합니다. Nexus 기반으로 구축하여 GUI 환경도 제공됩니다. 스크린샷 위주로 작성하려고 하였습니다. 데모환경 - Ubuntu 18.04 - Docker version 18.09.1 - Nexus 3.20.1
velog.io
Docker Sonatype Nexus 설치
(실행 환경 참고 https://woonizzooni.tistory.com/entry/Docker-Toolbox-설치-메모리-확장-디스크-확장-timezone변경 ) 1. Nexus data 디렉토리 생성 $ sudo -i # mkdir -p /mnt/sdb1/nexus-data # chown -R 20..
woonizzooni.tistory.com
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 |