본문 바로가기

ChatGPT/Docker

[Docker][Container] 도커 명령어 모음

반응형

도커 컨테이너 관련 명령어

도커 컨테이너 관련 명령어는 도커 컨테이너를 생성, 실행, 관리하는 데에 사용됩니다.

컨테이너 생성 및 실행

도커 컨테이너를 생성하고 실행하기 위해서는 docker run 명령어를 사용합니다.

docker run [옵션] [이미지명]:[태그] [컨테이너 실행할 명령어]
  • [옵션]: 컨테이너 실행에 대한 옵션입니다. 자주 사용되는 옵션은 다음과 같습니다.
    • -d: 컨테이너를 백그라운드에서 실행합니다.
    • -it: 컨테이너를 인터랙티브 모드로 실행합니다.
    • -p: 호스트와 컨테이너의 포트를 매핑합니다.
  • [이미지명]:[태그]: 컨테이너를 실행할 도커 이미지입니다.
  • [컨테이너 실행할 명령어]: 컨테이너 내부에서 실행할 명령어입니다. 생략 가능합니다.

예를 들어, ubuntu 이미지를 기반으로 한 컨테이너를 생성하고 실행하려면 다음과 같이 입력합니다.

docker run -it --name my-container ubuntu /bin/bash

위 명령어를 실행하면, ubuntu 이미지를 기반으로 한 컨테이너가 생성되고, /bin/bash 명령어가 실행됩니다. -it 옵션은 컨테이너를 인터랙티브 모드로 실행하겠다는 것을 의미합니다.

컨테이너 목록 확인

도커 컨테이너 목록을 확인하기 위해서는 docker ps 명령어를 사용합니다.

docker ps [옵션]
  • [옵션]: 컨테이너 목록 출력에 대한 옵션입니다. 자주 사용되는 옵션은 다음과 같습니다.
    • -a: 모든 컨테이너를 출력합니다.
    • -q: 컨테이너 ID만 출력합니다.

위 명령어를 실행하면, 현재 실행 중인 컨테이너 목록이 출력됩니다. 출력되는 정보는 다음과 같습니다.

  • CONTAINER ID: 컨테이너의 고유 ID입니다.
  • IMAGE: 컨테이너를 생성할 때 사용한 도커 이미지입니다.
  • COMMAND: 컨테이너 내부에서 실행 중인 명령어입니다.
  • CREATED: 컨테이너가 생성된 시간입니다.
  • STATUS: 컨테이너의 상태입니다.
  • PORTS: 호스트와 컨테이너의 포트 매핑 정보입니다.
  • NAMES: 컨테이너의 이름입니다.

예를 들어, 현재 실행 중인 모든 컨테이너를 확인하려면 다음과 같이 입력합니다.

docker ps -a

위 명령어를 실행하면, 모든 컨테이너 목록이 출력됩니다.

또는, 컨테이너 ID만 확인하려면 다음과 같이 입력합니다.

docker ps -q

위 명령어를 실행하면, 컨테이너 ID만 출력됩니다.

컨테이너 시작 및 종료

도커 컨테이너를 시작하고 종료하기 위해서는 docker startdocker stop 명령어를 사용합니다.

컨테이너 시작하기

docker start [컨테이너 이름 혹은 ID]

위 명령어를 실행하면, 지정한 컨테이너를 시작합니다.

예를 들어, my-container라는 이름을 가진 컨테이너를 시작하려면 다음과 같이 입력합니다.

docker start my-container

컨테이너 종료하기

docker stop [컨테이너 이름 혹은 ID]

위 명령어를 실행하면, 지정한 컨테이너를 종료합니다.

예를 들어, my-container라는 이름을 가진 컨테이너를 종료하려면 다음과 같이 입력합니다.

docker stop my-container

또는, 컨테이너 ID를 사용해서 종료할 수도 있습니다.

docker stop [컨테이너 ID]

위 명령어를 실행하면, 지정한 컨테이너를 종료합니다.

예를 들어, 컨테이너 ID가 f3a3d087c8a2인 컨테이너를 종료하려면 다음과 같이 입력합니다.

docker stop f3a3d087c8a2

컨테이너 삭제

도커 컨테이너를 삭제하기 위해서는 docker rm 명령어를 사용합니다.

docker rm [컨테이너 이름 혹은 ID]

위 명령어를 실행하면, 지정한 컨테이너를 삭제합니다. 단, 컨테이너가 실행 중일 경우에는 삭제할 수 없습니다. 컨테이너를 삭제할 때에는, 컨테이너가 실행 중인지 여부를 확인한 후 삭제해야 합니다.

예를 들어, my-container라는 이름을 가진 컨테이너를 삭제하려면 다음과 같이 입력합니다.

docker rm my-container

또는, 컨테이너 ID를 사용해서 삭제할 수도 있습니다.

docker rm [컨테이너 ID]

위 명령어를 실행하면, 지정한 컨테이너를 삭제합니다.

예를 들어, 컨테이너 ID가 f3a3d087c8a2인 컨테이너를 삭제하려면 다음과 같이 입력합니다.

docker rm f3a3d087c8a2

컨테이너 로그 확인

도커 컨테이너의 로그를 확인하기 위해서는 docker logs 명령어를 사용합니다.

docker logs [컨테이너 이름 혹은 ID]

위 명령어를 실행하면, 지정한 컨테이너의 로그를 출력합니다.

예를 들어, my-container라는 이름을 가진 컨테이너의 로그를 확인하려면 다음과 같이 입력합니다.

docker logs my-container

출력되는 로그는 컨테이너에서 실행한 프로세스의 표준 출력과 표준 에러 메시지입니다.

또한, 컨테이너의 로그를 실시간으로 확인하려면 docker logs -f 옵션을 사용합니다.

docker logs -f [컨테이너 이름 혹은 ID]

위 명령어를 실행하면, 지정한 컨테이너의 로그를 실시간으로 출력합니다.

예를 들어, my-container라는 이름을 가진 컨테이너의 로그를 실시간으로 확인하려면 다음과 같이 입력합니다.

docker logs -f my-container

컨테이너 파일 복사하기

도커 컨테이너 내부의 파일을 호스트로 복사하거나, 호스트의 파일을 컨테이너로 복사하기 위해서는 docker cp 명령어를 사용합니다.

컨테이너에서 호스트로 파일 복사하기

docker cp [컨테이너 이름 혹은 ID]:[컨테이너 내부 경로] [호스트 경로]

위 명령어를 실행하면, 지정한 경로의 파일을 컨테이너 내부에서 호스트로 복사합니다.

예를 들어, my-container라는 이름을 가진 컨테이너 내부의 /app/logs/access.log 파일을 호스트의 /home/user/logs 경로로 복사하려면 다음과 같이 입력합니다.

docker cp my-container:/app/logs/access.log /home/user/logs

호스트에서 컨테이너로 파일 복사하기

docker cp [호스트 경로] [컨테이너 이름 혹은 ID]:[컨테이너 내부 경로]

위 명령어를 실행하면, 지정한 경로의 파일을 호스트에서 컨테이너 내부로 복사합니다.

예를 들어, 호스트의 /home/user/logs/access.log 파일을 my-container라는 이름을 가진 컨테이너 내부의 /app/logs 경로로 복사하려면 다음과 같이 입력합니다.

docker cp /home/user/logs/access.log my-container:/app/logs

컨테이너에 환경 변수 추가하기

도커 컨테이너에 환경 변수를 추가하기 위해서는 docker run 명령어 실행 시 -e 옵션을 사용합니다.

docker run -e [환경 변수 이름]=[값] [이미지 이름]

위 명령어를 실행하면, 컨테이너 실행 시 지정한 환경 변수가 추가됩니다.

예를 들어, my-app이라는 이름을 가진 컨테이너를 실행하면서 MY_ENV_VAR라는 이름의 환경 변수에 test라는 값을 할당하려면 다음과 같이 입력합니다.

docker run -e MY_ENV_VAR=test my-app

환경 변수를 여러 개 추가하려면, -e 옵션을 여러 번 사용합니다.

docker run -e VAR1=value1 -e VAR2=value2 my-app

위 명령어를 실행하면, VAR1VAR2라는 이름의 환경 변수가 추가됩니다.

컨테이너에 접속하기

도커 컨테이너에 접속하기 위해서는 docker exec 명령어를 사용합니다.

docker exec -it [컨테이너 이름 혹은 ID] [실행할 명령어]

위 명령어를 실행하면, 지정한 컨테이너 내부로 접속합니다. -it 옵션은 대화형으로 실행하도록 설정하며, [실행할 명령어]는 선택적으로 입력할 수 있습니다. 명령어를 지정하지 않으면 컨테이너 쉘로 진입합니다.

예를 들어, my-container라는 이름을 가진 컨테이너 내부로 접속하려면 다음과 같이 입력합니다.

docker exec -it my-container /bin/bash

위 명령어를 실행하면, my-container 컨테이너 내부로 /bin/bash 쉘을 실행하면서 접속합니다.

 

이글은 ChatGPT의 도움을 받아 작성되었습니다.

반응형