도커

Docker 알아보기 - 1

황동리 2024. 1. 1. 17:30
반응형

Docker란?


위 그림은 배포환경의 변화를 나타낸 그림입니다.

Docker는 컨테이너 런타임 환경으로, 컨테이너화 된 애플리케이션을 패키징하고 배포하는 효율적인 방법을 제공합니다.

도커를 사용하면 패키지를 중앙 저장소(docker hub)로 전송할 수 있으며, 도커를 실행하는 모든 컴퓨터에 전송할 수 있습니다.

이와 관련해서 도커의 세 가지 주요한 개념을 설명하자면,

  1. 이미지: 애플리케이션과 해당 환경을 패키지화 한것. 여기에는 애플리케이션에서 사용할 수 있는 파일시스템과 이미작 실행될 때 실행돼야 하는 실행팡일 경로와 같은 메타 데이터가 포함되어 있습니다.
  2. 레지스트리: 도커 이미지를 저장하고 다른 사람이나 컴퓨터 간에 해당 이미지를 쉡게 공유할 수 있는 저장소. 이미지를 빌드할 때 빌드하는 컴퓨터에서 이미지를 실행하거나 이미지를 레지스트리로 PUSH(업로드)한 다음 다른 컴퓨터에서 이미지를 PULL(다운로드)할 수 있습니다.
  3. 컨테이너: 도커 기반 컨테이너 이미지에서 생성된 일반적인 리눅스 컨테이너입니다. 실행 중인 컨테이너는 도커를 실행하는 호스트에서 실행되는 프로세스이지만 호스트와 호스트에서 실행 중인 다른 프로세스와 완전히 격리되어 있습니다.

docker 설치 및 명령어 정리

우선 제가 설치하려는 환경은 centos7 입니다.

docker 설치명령어

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

docker 시작 명령어

systemctl enable --now docker

docker 명령어

docker search: docker의 이미지를 찾을 때 사용하는 명령어
- f 옵션: 필터링 할 때 사용하는 옵션
- limit 옵션: 제한 할 때 사용하는 옵션
- trunc 옵션: 이미지의 설명을 끊기지 않고 다 보여주는 옵션

	ex)
	docker search -f stars=30 centos = stars 수가 30 이상인 centos 이미지만 보여준다.
	docker search -f is-official=true centos = centos 이미지 중 공식적인 이미지만 보여준다.
	docker search -f is-automated=true centos: 
	docker search --limit 10 centos = 보여주는 centos 이미지의 수를 10개로 제한한다.
	docker search --no-trunc centos = centos 이미지들의 설명을 생략없이 다 보여준다.

docker pull: 이미지를 가져오는 명령어

	ex)
	docker pull centos = centos의 최신 버전 이미지를 가져온다.(태그를 안주면 최신버전으로 가져옴)
    docker pull centos:7 = 태그 7인 centos 이미지를 가져온다.

docker images: 이미지를 확인하는 명령어

docker rmi [REPOSITORY:tag]: 이미지를 삭제하는 명령어
	ex)
    docker rmi centos
    docker rmi centos:7

docker tag: 이미지의 태그를 변경 하는 명령어
	ex)
    docker tag centos [repository 이름]:[바꾸고자하는 태그명] = centos 이미지가 repository에 바꾸고자하는 태그명으로 바뀐다.

docker push: 이미지를 repository에 넣는 명령어
	ex)
    docker push kwonsuhan/http:centos7 = kwonsuhan/http라는 repository에 centos7이라는 태그로 넣어준다.

docker run: 이미지를 실행하는 명령어
- i(interactive) 옵션: 표준 입력(stdin)을 활성화 한다. 쉘에 명령어를 입력하기 위해 필요하다.
- t(tty) 옵션: tty 모드를 활성화 한다.
- d(detach) 옵션: 보통 데몬 모드라고 부르며, 컨테이너가 백그라운드로 실행됩니다.
- p(publish) 옵션: 호스트와 컨테이너의 포트를 연결한다.

	ex) 
    docker run -itd --name n1 nginx = nginx 이미지를 n1이라는 이름으로 컨테이너를 생성하고 실행한다.

docker ps: 실행된 컨테이너 프로세스를 확인하는 명령어
- a 옵션: 모든 컨테이너 프로세스를 보여주는 옵션

	ex)
    docker ps -a = 모든 컨테이너 프로세스를 보여준다.
    docker ps -aq = 모든 컨테이너 프로세스의 ID를 보여준다.

docker exec -it [name or container ID] [bash의 종류]: 컨테이너에 쉘로 접속하는 명령어
	ex)
    docker exec -it 013e67d7bb24 /bin/bash = 013e67d7bb24 컨테이너에 /bin/bash 쉘로 접속한다.

docker rm [name or container ID]: 컨테이너 프로세스 종료
- f 옵션: 강제로 프로세스 종료
	ex)
    docker rm -f $(docker ps -aq) = 모든 컨테이너 프로세스 강제 종료

docker attach: 컨테이너 접속
이 때 나올 때는 ctrl + p + q 로 나와야한다.

실제 명령어 결과

docker search

docker pull


tag를 지정하지 않고 [이미지명] 만 입력하면 자동으로 가장 최신 버전으로 받아진다.

docker rmi

docker tag

docker push

docker run


실행하는 프로세스 마다 서비스인지, 쉘인지 확인하기 어렵다면 옵션에 -itd를 다 써주면 자동으로 실행된다.

docker ps

도커 삭제를 할 때 repository명만으로 삭제할 때는 tag가 latest 버전일 때만이다.
그 외에 경우에는 삭제를 할 때 tag까지 같이 써주어야 한다.

docker run

 


컨테이너를 외부에서도 접속 할 수 있도록 하려면 외부 포트 포워딩을 해주어야한다.

아래와 같이 외부 포트를 설정을 해주면 외부에서도 접속이 가능하다.

반응형

'도커' 카테고리의 다른 글

Ubuntu 20.04 Docker 설치 방법  (0) 2024.03.08
Docker 알아보기 - 4  (1) 2024.01.04
Docker 알아보기 - 3  (1) 2024.01.03
Docker 알아보기 - 2  (1) 2024.01.02
컨테이너란?  (0) 2023.12.26