도커 컨테이너 관련 명령어
도커 컨테이너 관련 명령어는 도커 컨테이너를 생성, 실행, 관리하는 데에 사용됩니다.
컨테이너 생성 및 실행
도커 컨테이너를 생성하고 실행하기 위해서는 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 start
와 docker 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
위 명령어를 실행하면, VAR1
과 VAR2
라는 이름의 환경 변수가 추가됩니다.
컨테이너에 접속하기
도커 컨테이너에 접속하기 위해서는 docker exec
명령어를 사용합니다.
docker exec -it [컨테이너 이름 혹은 ID] [실행할 명령어]
위 명령어를 실행하면, 지정한 컨테이너 내부로 접속합니다. -it
옵션은 대화형으로 실행하도록 설정하며, [실행할 명령어]
는 선택적으로 입력할 수 있습니다. 명령어를 지정하지 않으면 컨테이너 쉘로 진입합니다.
예를 들어, my-container
라는 이름을 가진 컨테이너 내부로 접속하려면 다음과 같이 입력합니다.
docker exec -it my-container /bin/bash
위 명령어를 실행하면, my-container
컨테이너 내부로 /bin/bash
쉘을 실행하면서 접속합니다.
이글은 ChatGPT의 도움을 받아 작성되었습니다.
'ChatGPT > Docker' 카테고리의 다른 글
[Docker][Volume] 명령어 모음 (0) | 2023.04.24 |
---|---|
[Docker][Network] 도커 명령어 모음 (0) | 2023.04.24 |
[Docker][Image] 도커 명령어 모음 (0) | 2023.04.24 |
[Docker] Dockerfile 작성 방법 (0) | 2023.04.21 |
[Docker][UI]Portainer - 도커 쉽게 관리하자 (0) | 2023.04.19 |