[TIL]Docker 사용

Docker는?

  • IT 소프트웨어인 DockerLinux 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술입니다.
  • 오픈소스 Docker 커뮤니티는 모든 사용자가 무료로 이점을 얻을 수 있도록 이러한 기술을 개선하기 위해 노력하고 있습니다.
  • Docker Inc.는 Docker 커뮤니티의 활동에 기반을 두고 있으며 Docker 커뮤니티의 보안을 강화하고 개선 사항을 공유하여 커뮤니티를 발전시킵니다. 그리고 엔터프라이즈 고객을 위한 향상되고 강화된 기술을 지원합니다.

왜 필요한가?

  • 서버의 통일성(?)을 위해서!
  • 처음에 서버가 1개 였지만 서비스가 진행되면서 서버가 계속해서 추가 되지만 같은 사양의 같은 OS등 다 똑같이 맞추기가 쉽지 않기때문
  • 도커 이미지에 처음세팅을 저장해두고 서버가 추가 될때마다 도커 이미지에서 가져온다면 모두 같은 버전의 서버를 사용할수 있다.
  • 이렇게 하면 처음서버에서 잘된다면, 모든 서버가 같기때문에 오류가날 이유가 없어진다.

개인적으로 도커는 사용할 필요가 없는가? 아니다!

  • 도커의 가상화된 서버는 각각 기능을 수행하는 서버로 만들 수 있다.
  • mysql, tomcat, jenkins 등 여러가지를 쓰고 있는 개인 상황에서 서로 간섭 없이 쓸 수 있다.
  • 실제로, jenkins의 문제 때문에 이렇게 사용했다. 테스트서버에서 mysql, oracle, tomcat, jenkins 모두를 쓰고 있었는데 jenkins의 설정문제 때문에 jenkins를 재시작하면서 문제가 발생했다. jenkins의 서버 시작 shell이 다른곳에서 java를 사용하는 어플리케이션이 있다면 서버가 시작하지 않는 문제가 발생했다. 문제가 발생 후 부터 개인적으로 사용할때도 간섭이 없는 서로 간섭이 없는 서버를 만들어서 구성할 수 있다.

#실제 사용

  • jenkins를 이용해서 aws elasticbeanstalk에 배포 하는 기능을 구현하려 했다.
  • dockerfile 만들기

fileName : dockerfile

FROM jenkins/jenkins:lts

USER root

RUN apt-get update
RUN apt-get install awscli -y
  • dockerfile을 build
docker build --tag jenkins_awscli:1.0 .
  • 실행!
    docker run --name jenkins_awscli -d -p 8888:8080 jenkins_awscli:1.0
    
  • awscli 동작 확인 awscli

[출처] https://www.redhat.com/ko/topics/containers/what-is-docker