ec2에 도커 개발환경 구성

AWS ec2 인스턴스를 이용해 도커기반 개발환경을 구성해보자.

범용 인스턴스 t2-medium + EBS( 16기가)를 생성한다.

필요한 SW를 설치한다.: git, docker, jdk

[code lang=”perl”]git : sudo yum install git.x86_64 -y
docker: sudo yum install docker.x86-64 -y
jdk: sudo yum install java-1.8.0-openjdk-devel.x86_64 -y
[/code]

도커 데몬을 띄운다.
[code lang=”perl”]sudo service docker start[/code]

도커 실행 확인
[code lang=”perl”]sudo docker run hello-world[/code]

이제 도커 컨테이너로 필요한 서비스를 실행하면된다. ec2가 ssh 접속을 지원하지만 매번 접속해서 설치하고 실행하는건 귀찮으니 젠킨스 서버를 하나 설치해서 사용한다. 도커 명령까지 실행가능하도록 해 놓으면 도커 이미지도 만들수 있어 편하다.

jenkins 사용자 추가
[code lang=”perl”]sudo useradd -u 1000 jenkins[/code]

jenkins 사용자에게 루트권한 추가
[code lang=”perl”]sudo /usr/sbin/visudo

### Allow root to run any commands anywhere
root ALL=(ALL) ALL
jenkins ALL=(ALL) ALL
[/code]

jenkins 데이터 디렉토리를 추가하고 소유자를 jenkins로 변경
[code lang=”perl”]sudo mkdir /apps/jenkins
sudo chown -R jenkins /apps/jenkins
[/code]

호스트 서버 설정이 끝났으니 젠킨스를 컨테이너로 실행한다. 젠킨스 실행은 다른 포스트를 참고한다. 이렇게 권한을 주면 보안상 취약한 면이 있으니 접근 가능한 IP는 제한하는게 좋다.

사용중인 docker 컨테이너가 많으면 docker-compose를 같이 사용한다.
[code lang=”perl”]sudo -i
curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-uname -suname -m > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
[/code]

참고자료
https://docs.docker.com/installation/centos/
https://docs.docker.com/compose/install/