도커 명령어 사용해보기

박소현·2025년 5월 8일

도커 이미지 다운로드 기본 명령어 : docker pull nginx:latest


1. 도커 이미지 docker image Is
도커 컨테이너 - 생성 후 실행 안됨 : docker ps -a
도커 컨테이너 - 생성 후 실행 상태 : docker ps


2. 컨테이너 생성 + 실행 : docker run
컨테이너 생성 : docker create
컨테이너 실행 : docker start


ubuntu:latest -> 117MB, 9일전에 만든 이미지
nginx:latest -> 279MB , 3주전에 만든 이미지

우분투 컨테이너 실행 docker run -it ubuntu
-it: 터미널 모드로 실행
ubuntu: 사용할 이미지 이름


이렇게 하면 Ubuntu 리눅스 쉘 안으로 들어가게 된다
컨테이너에서 빠져나오기 : exit

docker run --name webserver -d -p 80:80 nginx


Nginx 웹서버 컨테이너를 실행하는 명령어
docker run #새 컨테이너를 생성하고 실행
--name webserver #컨테이너 이름을 'webserver'로 지정
-d #백그라운드 모드로 실행
-p 80:80 #호스트의 포트 80 -> 컨테이너의 포트 80에 매핑
nginx #사용할 도커 이미지

도커가 실행중인 상태 확인할 때 : docker ps
컨테이너 실행시킬 때 에러 없이 잘 실행됐는지 로그 체크:
docker logs [컨테이너 ID 또는 컨테이너명]

기존의 컨테이너를 중지하고 삭제한 후 새로운 컨테이너를 실행:
docker stop 088ef281417b # 현재 컨테이너 중지
docker rm 088ef281417b # 중지되어 있는 컨테이너 삭제
docker rm -f 088ef281417b # 실행되고 있는 컨테이너 삭제
컨테이너 접속
docker exec -it [컨테이너 ID 또는 컨테이너명] bash
예) Redis 컨테이너에 접속**
docker exec -it 0d1b2eb8b4bc bash

컨테이너에서 redis 사용해보기
root@0d1b2eb8b4bc:/data# redis-cli
127.0.0.1:6379>

호스트의 포트와 컨테이너의 포트 연결

docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
docker run -d -p 4000 : 80 nginx


docker run -p 4000:80라는 명령어를 입력하면 되면
도커를 실행하는 호스트의 4000번 포트를 컨테이너 80번 포트로 연결하도록 설정한다

  • 이유는?

    • 호스트와 컨테이너 간의 네트워크 통신

      1. Docker 컨테이너는 기본적으로 호스트 시스템과 격리된 네트워크 환경에서 실행됨
      2. 컨테이너 내부에서 실행되는 서비스에 접근하려면 호스트 시스템의 특정 포트를 컨테이너의 포트에 매핑 필요
      3. 위와 같이 매핑하면 http://localhost:4000으로 접근하면 컨테이너 내부의 80포트인 nginx가 제공하는 웹 페이지를 볼 수 있음
    • 여러 컨테이너 간 포트 충돌 방지
      1.같은 호스트에서 여러 컨테이너를 실행할 때 동일한 포트를 사용하면 충돌 발생

      1. 호스트의 포트를 다르게 지정함으로써 여러 컨테이너가 동일한 서비스를 제공하더라도 서로 간섭없이 동작 가능
      2. ex) 두 개의 nginx 컨테이너를 각각 호스트 포트 4000과 5000에 매핑하면 충돌 없이 둘다 실행 가능
    • 보안 및 접근 제어

      1. 특정 포트를 매핑하여 외부 네트워크에서 접근할 수 있는 범위 제어 가능
      2. ex)호스트의 포트 4000을 컨테이너 포트 80에 매핑하면 외부 네트워크 호스트의 포트 4000을 통해서만 컨테이너의 웹 서버 접근 가능
      3. 불필요한 포트 노출을 막고 보안 강화
    • 유연한 서비스 구성
      개발 환경과 운영 환경에서 다른 포트를 사용하여 서비스에 접근할 수 있도록 설정 가능
      ex) 개발 환경에서는 호스트의 포트를 4000을 사용, 운영 환경에서는 포트 80을 사용 가능


      [출처] https://prao.tistory.com/entry/Docker-Docker%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-Docker-CLI (Docker의 기본 개념과 자주 사용하는 Docker CLI)

profile
비전공자로써 금융 IT 취업에 도전하고 있습니다.

0개의 댓글