도커 컨테이너 관리 및 활용

도커 컨테이너는 기본적으로 격리된 환경에서 실행되는 프로세스이며, 각 컨테이너는 고유한 파일 시스템을 사용하여 호스트와 다른 컨테이너로부터 분리됩니다. 이 문서에서는 도커 컨테이너의 생성, 시작, 중지, 삭제 등 다양한 명령어를 다루고, 실제 예제를 통해 컨테이너의 활용 방법을 설명합니다.

도커 컨테이너의 기본 조작

1. 컨테이너 생성 (create)

도커 컨테이너를 생성하려면 `docker create` 명령어를 사용할 수 있습니다. `-i` 옵션은 표준 입력을 열어주고, `-t` 옵션은 터미널을 할당합니다.

[root@server ~]# docker create -it centos:8
b7f4c9d2e6a8c5f9a7d0e8f9c8d2e6a8c5f9a7d0e8f9c8d2e6a8c5f9a7d0e8f9
[root@server ~]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS    PORTS     NAMES
b7f4c9d2e6a8   centos:8   "/bin/bash"   10 seconds ago  Created             amazing_hamilton

2. 컨테이너 시작 (start)

생성된 컨테이너를 시작하려면 `docker start` 명령어를 사용합니다.

[root@server ~]# docker start b7f4c9d2e6a8
b7f4c9d2e6a8
[root@server ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
b7f4c9d2e6a8   centos:8   "/bin/bash"   1 minute ago    Up 2 seconds             amazing_hamilton

3. 컨테이너 생성 및 실행 (run)

컨테이너를 한 번에 생성하고 실행하려면 `docker run` 명령어를 사용합니다.

[root@server ~]# docker run -it centos:8
[root@f4c9d2e6a8b7 /]# 

4. 컨테이너 중지 (stop)

실행 중인 컨테이너를 중지하려면 `docker stop` 명령어를 사용합니다.

[root@server ~]# docker stop f4c9d2e6a8b7
f4c9d2e6a8b7
[root@server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

5. 컨테이너 삭제 (rm)

중지된 컨테이너를 삭제하려면 `docker rm` 명령어를 사용합니다. 실행 중인 컨테이너를 강제로 삭제하려면 `-f` 옵션을 추가합니다.

[root@server ~]# docker rm mycontainer
mycontainer
[root@server ~]# docker rm -f runningcontainer
runningcontainer

도커 컨테이너의 고급 활용

1. 포트 매핑

웹 서버 컨테이너를 실행하면서 호스트의 임의 포트 또는 특정 포트로 매핑할 수 있습니다. `-P` 옵션은 임의 포트로, `-p` 옵션은 특정 포트로 매핑합니다.

[root@server ~]# docker run -itd --name webserver -P nginx:latest
[root@server ~]# docker run -itd --name webserver2 -p 8080:80 nginx:latest

2. 디렉토리 매핑

호스트의 디렉토리를 컨테이너 내부 디렉토리와 매핑할 수 있습니다. 이를 통해 웹 서버의 HTML 파일이나 로그 파일 등을 호스트에 저장할 수 있습니다.

[root@server ~]# mkdir /webdata
[root@server ~]# docker run -itd --name webserver3 -p 8081:80 -v /webdata:/usr/share/nginx/html nginx:latest

3. 로그 확인

컨테이너의 로그를 확인하려면 `docker logs` 명령어를 사용합니다.

[root@server ~]# docker logs webserver3

4. 상세 정보 조회

컨테이너의 상세 정보를 확인하려면 `docker inspect` 명령어를 사용합니다.

[root@server ~]# docker inspect webserver3

5. Nginx 컨테이너 배포 사례

Nginx 컨테이너를 배포하여 호스트의 80번 포트를 통해 접근할 수 있도록 설정하는 예제입니다.
  • /root/nginx/www -> /usr/share/nginx/html
  • /root/nginx/logs -> /var/log/nginx
  • /root/nginx/conf/nginx.conf -> /etc/nginx/nginx.conf
먼저 필요한 디렉토리를 생성하고, Nginx 설정 파일을 복사한 후 컨테이너를 실행합니다.

[root@server ~]# mkdir -p /root/nginx/{www,logs,conf}
[root@server ~]# docker cp nginx_container:/etc/nginx/nginx.conf /root/nginx/conf/
[root@server ~]# echo "Welcome to Docker!" > /root/nginx/www/index.html
[root@server ~]# docker run -itd --name nginx_web -p 80:80 -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/logs:/var/log/nginx -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:latest

태그: docker CentOS nginx container-management

9월 19일 11:56에 게시됨