[Docker] 도커 컨테이너 Container 명령어

2025. 4. 7. 10:44Docker

컨테이너 명령어를 알기 전에!
컨테이너 = 미니컴퓨터!

1. 컨테이너 생성 

# 해당 명령어를 실행해보면 Image 다운로드 부터 되는걸 확인 할 수 있다.
# 즉 이미지를 먼저 다운로드 받지 않아도 알아서 도커헙으로부터 이미지 다운로드를 진행함
docker create nginx

 

다만, 이건 실행된 것이 아니기 때문에 우린 실행이 필요!

2. 컨테이너 실행

# 컨테이너 ID 는 일부만 입력해도 됨
docker start [Container ID]
docker start 2c6c

 

여기서 컨테이너를 각각 생성하고 따로 실행하는데 불편함을 느낄 수 있다.

그래서 자주 사용하는 명령어인 생성과 실행을 동시에 실행하는 명령어!

컨테이너 생성과 실행을 동시에 실행

# 도커 포그라운드 실행
docker run nginx

# 도커 백그라운드 실행
docker run -d nginx

 

여기서 정리하는 포그라운드백그라운드는 무엇이냐?

1. 포그라운드 Foreground
: 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태
장점: 실시간으로 실행되는 화면을 확인
단점: 다른 프로그램을 조작할 수 없음

2. 백그라운드 Background
: 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태
장점: 다른 프로그램을 조작할 수 없음
단점: 실시간으로 실행되는 화면을 확인할 수 없음

실행할 때 컨테이너의 이름을 붙여서 생성할 수도 있다

컨테이너에 이름 붙여서 생성 및 실행

docker run -d --name [컨테이너 이름] nginx
docker run -d --name my-web-server nginx

3. 컨테이너 조회

#실행 중인 컨테이너 조회
docker ps

# 모든 컨테이너 조회
docker ps -a

4 컨테이너 중지

# 정상적인 종료
docker stop [Id]
docker stop 2c6c

# 강제 종료
docker kill [ID]

5. 컨테이너 삭제

# 중지된 컨테이너 삭제
docker rm [ID]
docker rm 2c6c

# 여러개 가능
docker rm 2c6c 12d ...

# 중지된 컨테이너 모두 삭제
docker rm $(docker ps -qa)

# 실행중인 컨테이너 삭제
docker rm -f [ID]
docker rm -f 1f9

 

6. 호스트의 포트와 컨테이너의 포트를 연결 (포트매핑)

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

 

 

docker ps -a로 확인해 보면 포트의 입력방식이 달라진 걸 확인할 수 있음 

IMAGE     COMMAND                         STATUS             PORTS               
7nginx     "/docker-entrypoint.…"   Up 44 seconds   0.0.0.0:4000->80/tcp 
nginx       "/docker-entrypoint.…"   Up 10 minutes     80/tcp               

 

7. 컨테이너 로그 조회

# 로그 조회
docker logs [ID]
docker logs 2gc

# 특정 몇 줄 조회
docker logs --tail [수] [ID]
docker logs --tail 10 2gc

# 실시간 로그 확인
docker logs -f 2gc

# 기존 로그는 제외하고 현재부터 생성되는 로그 
docker logs --tail 0 -f 2gc

 

8. 실행 중 컨테이너(Container) 내부 접속

docker exec -it [Container ID] bash
docker exec -it b59 bash

 

9. 실행 중 컨테이너(Container) 내부에서 나가기

exit