본문 바로가기

Cloud/컨테이너(Container)

도커(Docker) 사용법 및 명령어(Command line Interface)

도커 사용법 기본개념

도커를 사용하는 가장 기본적인 흐름은 다음과 같습니다.

  1. 이미지 다운로드: 필요한 이미지 도커 허브(레지스트리)에서 찾아 다운로드합니다.
  2. 컨테이너 실행: 다운로드한 이미지를 이용해 '컨테이너'라는 독립된 공간을 만들고 실행합니다.
  3. 컨테이너 관리: 실행 중인 컨테이너의 상태를 확인하고 필요에 따라 중지하거나 삭제합니다.

도커 허브? 및 설정하기(Registry)

도커 허브란 도커에서 제공하는 컨테이너 이미지 레지스트리 서비스입니다. 이미지를 제공하고,관리하고 다운로드 할 수 있는 

레지스트리입니다. 또한 도커 사설 레지스트리 (Private Registry) 를 별도로 운영하여 개인적인 소스코드 이미지등을 관리할 수 있는 허브를 제공합니다. 

1. 도커 허브 계정 생성

먼저, 웹사이트에서 회원가입을 해야 합니다.
URL: https://hub.docker.com/ 에 접속하여 회원가입

2. 로그인

계정을 만들었다면, 이제 내 컴퓨터에서 도커 허브에 접속할 차례입니다.
docker login 명령어를 사용

$ docker login

명령어를 입력하면, 터미널이 사용자 이름비밀번호를 차례로 물어봅니다.
도커 사이트에서 가입한 사용자 이름과 비밀번호를 입력하면, Login Succeeded라는 메시지가 뜨면서 로그인이 완료됩니다.

WARNING! Your password will be stored unencrypted in /home/lainyzine/.docker/config.json. 
Configure a credential helper to remove this warning. 
See https://docs.docker.com/engine/reference/commandline/login/#credentials-
Login Succeeded

 

 


 

내가 만든 이미지 도커 허브에 올리기

로그인을 완료했다면, 이제 내가 만든 이미지를 도커 허브에 공유할 수 있습니다. 이미지를 올리는 것을 '푸시(Push)'라고 부릅니다.

1. 이미지(Image) 이름 지정하기 (Tagging)

도커 허브에 이미지를 올리려면, [사용자 이름]/[저장소 이름]:[태그] 형식으로 이름을 바꿔줘야 합니다.

$ docker tag my-app:latest myusername/my-app:1.0


- docker tag 명령어를 사용해 새로운 이름을 지정해 줍니다.예를 들어, my-app 이라는 이미지를 만들었고, 내 도커 허브 사용자 이름이 myusername이라면..
- my-app:latest : 현재 내 컴퓨터에 있는 이미지 이름과 태그/

  • -myusername/my-app:1.0 : 도커 허브에 올릴 때 사용할 새로운 이름

2. 이미지(Image) 푸시하기 (Push)

이름을 변경한 이미지를 도커 허브에 올립니다.

  • docker push 명령어를 사용합니다. 
  • $ docker push myusername/my-app:1.0
    
  • 이 명령어를 실행하면, 이미지가 도커 허브에 업로드됩니다.

 

프라이빗(Private) 레지스트리

도커 허브 외에, 회사나 조직 내부에서만 사용하는 비공개 저장소를 만들 수도 있습니다. 이를 프라이빗 레지스트리라고 부릅니다.

  • 로그인 방법: docker login 명령어 뒤에 레지스트리 주소를 입력합니다.
    $ docker login [레지스트리 주소]
    

사용 목적: 보안을 위해 외부에 공개되지 않는 중요한 이미지를 관리하거나, 내부 협업을 효율적으로 하기 위해 사용합니다.

 

필수 도커 명령어 총정리

1. 이미지(Image) 관련 명령어

 

  • docker pull [이미지 이름]
    • 설명: 도커 허브에서 원하는 이미지를 다운로드합니다.
      $ docker pull nginx
      
  • docker images
    • 설명: 내 컴퓨터에 다운로드된 이미지 목록을 보여줍니다.
      $ docker images
      
  • docker rmi [이미지 이름 또는 ID]
    • 설명: 다운로드된 이미지를 삭제합니다. 컨테이너가 실행 중인 이미지는 삭제할 수 없습니다
    • $ docker rmi nginx

 

 

2. 컨테이너 관련 명령어

컨테이너는 이미지로부터 만들어진 '실행 중인 프로그램'입니다.

  • docker run [옵션] [이미지 이름]
    이미지를 이용해 컨테이너를 만들고 실행합니다. 도커의 가장 핵심적인 명령어입니다.
    • 자주 쓰는 옵션:
      • -d: 컨테이너를 백그라운드에서 실행합니다. (떼어내기, Detached mode)
      • -p [외부 포트]:[내부 포트]: 컨테이너의 포트를 외부와 연결합니다. (Port forwarding)
      • --name [이름]: 컨테이너에 알아보기 쉬운 이름을 붙여줍니다.
        nginx 컨테이너를 만들고, 80번 포트를 컴퓨터의 8080번 포트와 연결하여 백그라운드에서 실행
        $ docker run -d -p 8080:80 --name my-nginx nginx
        
  • docker ps
    현재 실행 중인 컨테이너 목록을 보여줍니다. -a 옵션을 붙이면 모든 컨테이너(실행 중 + 정지된)를 볼 수 있습니다.
    $ docker ps
    

     

  • docker stop [컨테이너 이름 또는 ID]
    실행 중인 컨테이너를 정지합니다.
    $ docker stop my-nginx
    

     

  • docker rm [컨테이너 이름 또는 ID]
    설명: 정지된 컨테이너를 삭제합니다. (실행 중인 컨테이너는 먼저 stop해야 합니다.)
    $ docker rm my-nginx
    

     


 

예제: 나만의 웹 서버 띄우기

위의 명령어들을 이용해 간단한 웹 서버를 띄워보기.

  1. Nginx 이미지 다운로드: 
  2. $ docker pull nginx
    
  3. 컨테이너 실행 및 포트 연결:이 명령어를 실행하면 nginx 컨테이너가 백그라운드에서 실행됩니다. 내 컴퓨터의 8080번 포트로 들어오는 요청을 컨테이너의 80번 포트로 보내게 됩니다.
    $ docker run -d -p 8080:80 --name my-nginx nginx
    
  4. 브라우저 확인:
    웹 브라우저를 열고 주소창에 http://localhost:8080을 입력
    화면이 출력이 되는지확인
  5. 컨테이너 정지 및 삭제
    서버를 멈추고 삭제
$ docker stop my-nginx
$ docker rm my-nginx

'Cloud > 컨테이너(Container)' 카테고리의 다른 글

도커(Docker)란 무엇일까?  (0) 2025.09.05