article thumbnail image
Published 2022. 9. 7. 20:24

1. 도커란 무엇인가와 사용하는 이유

도커는 리눅스 운영체제를 활용하여 어떤 소프트웨어의 실행환경을 컨테이너 기반으로 장소, 환경에 제한되지 않고 어느 곳에서나 동일한 인터페이스를 제공하면서 프로그램을 신속하게 배포, 확장 그리고 관리 할 수 있게 해주는 역할을 합니다.

 

서버를 확장하거나 혹은 새로운 개발환경을 세팅해야하는 상황이 있을 때 굉장히 많은 작업을 해야하는데 시스템 엔지니어들이 따로 상주하여 이러한 개발환경을 세팅하였지만 도커가 사용되면서 추세가 변경되기 시작했습니다.

 

과거엔 테스트, 스테이징, 프로덕션 환경들이 버전도 다르고 OS도 달라 세팅하는데 어려움이 있었고 시스템 엔지니어가 따로 상주할 정도로 많은 작업들이 필요했습니다
최근엔 가상환경을 통해 container를 사용하면서 이러한 불편함이 사라졌습니다

도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다.

이는실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다

출처:https://jeongupark-study-house.tistory.com/76 [코더가 아닌 개발자!! Why를 가지자!]

 

2. 용어 개념

이미지 : 현재 개발,실행환경을 사진처럼 찍어서 저장시킨 것이라고 할 수 있습니다.

이 저장시킨 이미지를 다른 실행환경에서 도커를 설치한 뒤 가져와 실행시키게 되는데 실행시키기 위해 컨테이너 환경이 필요하게 됩니다

 

컨테이너 : 가상화와 비슷한 기술인데 가상화란 현재 컴퓨터에 하나의 가상 OS(윈도우에서 리눅스를 사용하는 등 하나의 컴퓨터를 더 사용하는 기술)를 더 사용하는 방식입니다. 하지만 이 방식은 상당히 느리고 프로그램이 무거워서 도커에서 이러한 방식을 사용했다면 용량이 상당히 커져서 사용에 부담이 될 수 있습니다

그래서 도커에서는 가상화 방식과는 조금 다르게 하나의 OS를 통으로 만들어서 실행시키는 것이 아닌 기존의 OS와 필요한 부분은 자원을 공유하며 사용되어 효율성을 높인 방식입니다.

 

가상화 방식과 컨테이너의 차이를 보여주는 이미지입니다.

 

도커 허브 : 클라우드 상에 저장소를 생성하여 도커 이미지를 저장시켜 놓는 곳으로 필요할 때 로컬 PC 상에서 다운로드하여 사용할 수 잇습니다

 

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your team's container applications.

hub.docker.com

도커는 기본적으로 리눅스 명령어를 이용하고 있으며 윈도우 powershell에서 사용하였습니다.

 

 

3. 명령어

https://compiler.tistory.com/32 (참고)

 

[DOCKER] Windows에서 CMD/Powershell로 Docker의 기본 명령어

 Windows에서 도커를 사용하려면 관리자 권한으로 실행한 CMD나 PowerShell을 사용해야 한다. 1. 도커 버전 확인 docker -v 2. 도커 공식 이미지 저장소에서 OS 이미지 내려받기 docker pull [이미지 이름]:[이

compiler.tistory.com

  • 기본적인 것들

docker pull <name> : 이미지를 다운 받음

docker images : 다운받은 이미지 목록 출력

  • 컨테이너 환경에 올려서 실행시키기

(고려 사항)

  • 포트연결(-p) port연결이 필요한 이유는 컨테이너 환경과 사용자 호스트 컴퓨터는 가상환경에서 컨테이너 네트워크 주소와 실제 네트워크 주소가 다르기 때문입니다. (컨테이너 환경과 사용자 컴퓨터는 서로 다른 컴퓨터라고 이해하면 쉽다.
  • 백그라운드 모드(-d) : docker 컨테이너에서 실행되는 명령이 계속 실행되고 있는 상황이 아니면 그 명령이 종료됨과 동시에 컨테이너도 종료되기 때문에 계속 실행시키기 위해 사용합니다
  • mysql:latest : 여러개의 mysql 중 가장 최신껄 가져옴.
  • 환경변수 설정(-e) : " 환경변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다. 인터넷에서 조금더 찾아봤더니 ‘운영체제가 참조하는 변수’라는 정의가 있다. " → 비밀번호 설정하는 것을 보면 관리자 권한등을 설정한다고 생각할 수 있을거 같은데 추가로 정리해보겠습니다. (환경변수에 관해)

도커를 이용하면 실행 환경을 이미지로 만들어 간편하게 배포하고 재사용할 수 있습니다.

 

4. 공부해본 이유

최근 노트북을 구매하면서 데스크탑 환경과 노트북 개발 환경이 달라 한번 공부할 겸 써보고 싶은 마음에 정리해보았고 이후에 추가적으로 정리할 예정입니다

 

복사했습니다!