Hello Docker

장현욱(Artlogy)·2022년 11월 9일
0

Docker

목록 보기
1/1
post-thumbnail

Docker는 왜 쓰는가?

내 식대로 Docker를 쓰는 이유를 정의하라고 하면 개발(배포) 환경 구분을 위함이라고 정의하겠다.
말 그대로 내가 실행하고자 하는 app을 위한 전용 환경이다.

초보 개발자라면 이런 적이 있을 것이다.
분명 내 컴퓨터에선 잘되는데, 다른 컴퓨터로 옮기니 안되네..
Docker를 사용하면 앞으로 이럴일은 없을 것이다.

도커는 application을 실행하는 환경과 개발하는 환경의 완전한 구분을 위해 나온 플랫폼이다.

Image ★

어플리케이션을 실행하기 위한 필요한 모든 것이 생성되어 있는 파일이다.
예를 들어 A라는 어플리케이션을 완전히 실행하기 위해선
OracleDB, Node.js, Androide SDK가 필요하다고 가정해보자.
그럼 Oracle Image, Node Image, Androide Image를 만들어서 실행시키거나
A Image로 필요한 모든걸 담아서 실행하면 환경구축이 끝난다.


Container

image를 사용하여 실행된 환경을 Container라고한다.
프로세스의 독립성을 보장하기 위해서 네트워크와 저장소가 분리되어있고
Terminal도 가상환경으로 분리되어 있다.


가장 핵심은 Image와 Container이기 때문에 다른 용어는 진행하면서 언급하겠다.

Hello Docker

공식사이트에서 OS에 맞는 Docker를 설치해준다.
Docker Hub과 Docker Desktop도 사용할 때가 많으니 환경 구성 해두자.
다운로드가 완료 되었으면 꼭 재부팅을 해주고 DockerDesktop을 실행시켜보자.

왼쪽아래가 초록색으로 뜬다면 도커를 사용할 준비는 끝이다.

sample container

샘플 도커환경을 만들어 실행해보자.

$ docker run -d -p 80:80 docker/getting-started

이 후 브라우저창에 localhost로 접속해서 다음과 같은 창이 뜬다면 아주 심플한 도커 컨테이너를 성공적으로 만든 것이다.

Docker run 기본 문법

$ docker run [options] {image_name} [command]

image를 이용해 container를 만드는 docker run명령어는 위와 같은 형태를 따른다.
우리가 샘플 컨테이너를 만들 때 사용한 문법을 살펴보자.

docker run [-d -p 80:80] {docker/getting-started} [command]

먼저 -d -p 80:80은 option단에 적용되는 부분으로

  • -d : background mode
  • -p host_port:container_port : container상 포트를 host_port에 포트포워딩 하겠다는 뜻

docker/getting-started는 image의 이름이다.

container 조작하기

요즘엔 DockerDesktop이 잘되어 있어서 이걸 이용해도 되지만
cli환경에서 자주 쓰이는 명령어는 알고가는게 좋다.

상태 확인하기

$ docker ps

멈추기

$ docker stop {container_id | container_name}
$ docker kill {container_id | container_name}
  • stop의 경우에는 SIGTERM이라는 신호를 보냄
  • kill의 경우에는 SIGKILL이라는 신호를 보냄

재시작

$ docker restart {container_id | container_name}

삭제하기

docker rm {container_id | container_name}

삭제하면 다시 image를 이용해 container를 만들어야한다.

실행중인 container의 cli에 접속하기

docker exec [options] {container_id | container_name} [command]

더 많은 명령어는 공식사이트를 이용하자.

0개의 댓글