본문 바로가기

Docker

Docker 컨테이너 생성 및 구동

1. Docker 컨테이너의 개념
Docker 컨테이너란, Docker 이미지의 인스턴스를 실행한 것이다. 각 컨테이너는 호스트 OS의 커널을 공유하며, 다른 컨테이너와 격리된 프로세스로 실행된다. 컨테이너는 애플리케이션과 그 실행 환경을 묶어 하나의 독립적인 유닛으로 실행된다.

 

 

2. Docker 컨테이너 생성 명령어

1)docker container create: 컨테이너를 생성하지만 시작 안함.

$ docker container create --name [컨테이너 이름] [이미지 이름]

 

주로 특정 옵션을 설정하고 싶은 경우 사용하며, 일반적으로 많이 사용되지 않는다. 대부분 docker run 명령어로 컨테이너를 생성하고 실행한다.

 

2)docker run: 컨테이너 생성과 실행을 동시에 수행

$ docker run -d --name [컨테이너 이름] [이미지 이름]

 

 

3. 컨테이너 상태 관리 명령어

 

1)컨테이너 중지

$ docker container stop [컨테이너 이름/ID]

 

2)컨테이너 시작

$ docker container start [컨테이너 이름/ID]

 

3)컨테이너 삭제

컨테이너가 실행 중일 때는 삭제 불가! 반드시 컨테이너를 stop한 후 삭제해야 한다.

 

컨테이너 삭제

$ docker container rm [컨테이너 이름/ID]

 

실행 중인 컨테이너 강제 삭제

$ docker container rm -f [컨테이너 이름/ID]

 

 

4. Docker 이미지 관련 명령어

 

이미지 목록 확인

$ docker images

 

이미지 다운로드

$ docker pull [이미지 이름]

 

이미지 삭제

$ docker rmi [이미지 이름]

 

 

5. Docker 컨테이너 생성 및 실행 예제

Nginx 컨테이너 생성 및 실행해보자.

 

(1) Nginx 이미지 다운로드 및 컨테이너 생성

$ docker pull nginx
$ docker container create --name webserver nginx

 

컨테이너 목록 확인

$ docker ps -a

CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS    PORTS     NAMES
05f5c4f509ec   nginx     "/docker-entrypoint.…"   5 minutes ago    Created             webserver

 

컨테이너 실행

$ docker start webserver

 

Nginx 웹서버를 백그라운드에서 실행

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

 

Nginx 웹서버의 상태 확인

$ docker ps

CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS                                   NAMES
f4e73582487b   nginx     "/docker-entrypoint.…"   5 seconds ago   Up 4 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   webserver

 

(2) 스크립트를 통한 다중 컨테이너 생성

 

Shell Script로 다수의 Nginx 컨테이너 생성

$ vim con.sh

#!/bin/bash
for i in $(seq 1 10)
do
docker container create nginx
done

 

스크립트 실행

$ sh con.sh

 

생성된 컨테이너 목록 확인

$ docker ps -a

 

(3) Rocky Linux 컨테이너 실행 및 명령어 활용

 

Rocky Linux 이미지 다운로드

$ docker pull rockylinux:8

 

컨테이너 생성 및 간단한 명령 실행

$ docker container run --name test1 rockylinux:8 /bin/cal

 

결과

     August 2024    
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 

컨테이너를 백그라운드 모드로 실행

$ docker container run --rm -d rockylinux:8 /bin/ping localhost

 

컨테이너 로그 확인

$ docker container logs [컨테이너 이름/ID]

 

현재 실행중인 컨테이너 전부 삭제

$ docker rm -f $(docker ps -aq)

 

 

6. Docker 컨테이너 실행 옵션

 

Foreground 모드

$ docker run -it [이미지 이름] [명령어]

 

Background 모드

$ docker run -d [이미지 이름]

 

 

7. Docker 컨테이너 로그 및 상태 확인

 

로그 확인

$ docker container logs [컨테이너 이름/ID]

 

시간 표시 로그 확인

$ docker container logs -t [컨테이너 이름/ID]

 

실행 중인 컨테이너의 실시간 상태 확인

$ docker container stats [컨테이너 이름/ID]

 

 

8. Docker 컨테이너 관리 팁

 

컨테이너가 많아질 경우 정리

$ docker rm -f $(docker ps -aq)

 

사용하지 않는 이미지 삭제

$ docker rmi [이미지 이름]

 

'Docker' 카테고리의 다른 글

Docker Compose 설치 및 사용법  (1) 2024.10.17
Docker 개념 및 설치 과정  (2) 2024.10.03