도커 개요 및 명령어

1 minute read

Docker

  • Go 언어로 작성된 리눅스 컨테이너 기반 오픈소스 가상화 플랫폼
  • Host OS, Docker Engine 위에서 바로 동작하며, Host의 커널을 공유한다. (커널을 공유하는 경우 I/O 처리가 쉬워져 성능 향상을 꾀할 수 있다.)
  • Host OS가 사용하는 자원을 분리하여 여러 환경을 만들 수 있도록 한다.
  • 성능 향상, 뛰어난 이식성, Scale Out 에 대한 유연성이 좋다.

image

  • container 실행에 필요한 파일, 설정값들을 포함
  • DockerHub를 이용해서 남들이 만들어놓은 이미지를 가져다 쓴다.
  • 이미지를 만들기 위해 Dockerfile 이라는 자체 DSL(Domain-Specific Language) 이용해 이미지 생성 과정을 적는다.

도커 이미지 검색해보기

$ docker search [OPTIONS] TERM
$ docker search jenkins #example

도커 이미지 가져오기

$ docker pull <image_name>:<tag>
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]

tag 미지정 시 latest

도커 이미지 확인하기

$ docker images

도커 이미지 삭제하기

$ docker rmi <image_name>:<tag>
$ docker rmi <image_id>
$ docker rmi [OPTIONS] IMAGE [IMAGE...]
$ docker rmi -f jenkins #example 젠킨스 사용하는 컨테이너도 같이 삭제함 

container

  • 실제로 실행되는 주체 (image를 class라고 생각한다면, container는 instance이다.)
  • 컨테이너의 변경사항이 이미지에 적용되지 않음
  • 적절한 옵션을 잘 걸어줘야 추후에 문제생기지 않는다 (포트 설정, 볼륨 설정 등등…)

도커 컨테이너 확인하기

$ docker ps
$ docker ps -a #모든 컨테이너 확인

도커 컨테이너 생성하기

$ docker create [OPTIONS] IMAGE [COMMAND] [ARG...] # 컨테이너 생성만
$  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  # 컨테이너 생성 + 시작

도커 컨테이너 시작하기

$ docker start [OPTIONS] CONTAINER [CONTAINER...]

도커 컨테이너 재시작하기

$ docker restart [OPTIONS] CONTAINER [CONTAINER...]

도커 컨테이너 접속하기

$ docker attach [OPTIONS] CONTAINER
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

attach, exec에 대한 차이점 존재 (새로운 프로세스를 여냐 안여냐 인듯?)

도커 컨테이너 정지시키기

$  docker stop [OPTIONS] CONTAINER [CONTAINER...]

도커 컨테이너 삭제하기

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

Categories:

Updated: