docker command
docker 사용법 정리
docker
아래는 docker image 를 다운로드하는 명령어 이다.
docker pull centos
docker run -d -t --name [container name] centos
주어진 명령어는 Docker를 사용하여 CentOS 이미지를 기반으로 하는 컨테이너를 백그라운드에서 실행하는 명령어입니다.
각 옵션에 대한 설명은 다음과 같습니다:
docker run: Docker 컨테이너를 실행하는 명령어입니다.
-d: Detached 모드에서 컨테이너를 실행합니다.
이 옵션을 사용하면 컨테이너가 백그라운드에서 실행되며, 현재 터미널 창이 차지되지 않습니다.
-t: 가상 터미널 (TTY)을 사용하도록 설정합니다.
이것은 컨테이너 내에서 명령을 실행하거나 디버깅할 때 유용합니다.
—name [container name]: 컨테이너에 이름을 부여합니다.
[container name] 부분은 사용자가 지정하는 원하는 컨테이너 이름으로 대체되어야 합니다.
centos: 실행할 도커 이미지의 이름입니다. 이 경우는 CentOS 이미지를 사용합니다.
따라서 이 명령어는 CentOS 이미지를 기반으로 하는 컨테이너를 Detached 모드로 실행하고, 해당 컨테이너에는 가상 터미널이 할당되며 지정된 이름으로 명명됩니다.
docker exec -it [container name] bash
주어진 명령어는 Docker 컨테이너 내에서 쉘을 실행하는 명령어입니다. 각 옵션에 대한 설명은 다음과 같습니다:
docker exec: Docker 컨테이너 내에서 명령을 실행하는 명령어입니다.
-it: 두 개의 옵션, 즉 -i (interactive)와 -t (tty)를 결합한 것입니다.
이 옵션들은 사용자와 컨테이너 간의 상호작용 및 가상 터미널 할당을 가능하게 합니다.
[container name]: 실행 중인 Docker 컨테이너의 이름이나 ID입니다.
[container name] 부분은 사용자가 지정한 컨테이너의 이름으로 대체되어야 합니다.
bash: 실행할 명령어로, 이 경우에는 쉘을 실행하는 명령어로서 Bash 쉘이 사용됩니다.
따라서 이 명령어는 특정 컨테이너 내에서 Bash 쉘을 실행하고 사용자에게 상호작용이 가능한 터미널을 제공합니다.
이를 통해 사용자는 컨테이너 내에서 명령어를 실행하거나 작업을 수행할 수 있습니다.
docker stop [container name]
주어진 명령어는 Docker 컨테이너를 정지하는 명령어입니다.
docker stop: Docker 컨테이너를 정지하는 명령어입니다.
[container name]: 정지하려는 Docker 컨테이너의 이름 또는 ID입니다.
[container name] 부분은 사용자가 지정한 컨테이너의 이름으로 대체되어야 합니다.
따라서 이 명령어는 특정한 Docker 컨테이너를 정지시킵니다.
정지된 컨테이너는 실행 중이 아니며, 필요한 경우에 다시 시작할 수 있습니다.
docker start [container name]
주어진 명령어는 Docker 컨테이너를 시작하는 명령어입니다.
docker start: Docker 컨테이너를 시작하는 명령어입니다.
[container name]: 시작하려는 Docker 컨테이너의 이름 또는 ID입니다.
[container name] 부분은 사용자가 지정한 컨테이너의 이름으로 대체되어야 합니다.
따라서 이 명령어는 특정한 Docker 컨테이너를 시작시킵니다. 시작된 컨테이너는 실행 중이며, 필요한 경우에 다시 정지시킬 수 있습니다.
docker image ls
docker image ls 명령어는 현재 시스템에 설치된 Docker 이미지를 나열하는 데 사용됩니다.
이 명령은 다양한 이미지 정보를 보여주며, 주로 이미지의 REPOSITORY, TAG, IMAGE ID, CREATED, SIZE 등의 정보를 표시합니다.
docker pull alpine
docker run -d -t --name [container name] alpine
docker exec -it [container name] sh
docker ps
docker ps 명령어는 현재 실행 중인 Docker 컨테이너의 목록을 보여주는 명령어입니다. 이 명령어는 다양한 정보를 표시하는데, 주로 다음과 같은 항목이 포함됩니다:
CONTAINER ID: 컨테이너의 고유 식별자입니다.
IMAGE: 컨테이너가 기반으로 하는 Docker 이미지의 이름 또는 ID입니다.
COMMAND: 컨테이너가 실행 중인 명령어 또는 프로세스입니다.
CREATED: 컨테이너가 생성된 시간입니다.
STATUS: 컨테이너의 상태(실행 중, 정지 등)입니다.
PORTS: 호스트와 연결된 포트 정보입니다.
NAMES: 컨테이너의 이름입니다.
docker ps 명령어는 기본적으로 실행 중인 컨테이너만을 보여줍니다.
만약 중지된 컨테이너도 함께 보고 싶다면 docker ps -a 명령어를 사용할 수 있습니다. 이 명령어는 실행 중이지 않은 컨테이너도 표시하며, 더 많은 상세 정보를 제공합니다.
docker stats
docker stats 명령어는 Docker 호스트에서 실행 중인 모든 컨테이너의 실시간 리소스 사용량을 보여주는 명령어입니다.
이 명령어를 사용하면 CPU, 메모리, 네트워크, 블록 I/O 등의 리소스 사용량을 실시간으로 모니터링할 수 있습니다.
만약 [container name or ID]를 지정하지 않으면 현재 실행 중인 모든 컨테이너의 리소스 사용량을 보여줍니다.
특정 컨테이너의 리소스 사용량만을 보려면 해당 컨테이너의 이름이나 ID를 명시적으로 지정하면 됩니다.
실행 결과에는 각 컨테이너의 CPU 사용률, 메모리 사용량, 네트워크 I/O, 블록 I/O 등이 실시간으로 업데이트되어 표시됩니다.
이를 통해 Docker 환경에서 실행 중인 컨테이너들의 성능을 모니터링할 수 있습니다.
명령어 실행 후 Ctrl+C를 눌러 종료할 수 있습니다.
docker container list --all
docker container list --all 명령어는 현재 시스템에 존재하는 모든 도커 컨테이너의 목록을 표시합니다.
--all 옵션을 사용하면 실행 중인 컨테이너 뿐만 아니라 중지된 컨테이너도 모두 표시됩니다.
이 명령어를 실행하면 현재 시스템에 있는 모든 도커 컨테이너의 목록이 터미널에 표시됩니다.
각 컨테이너에는 컨테이너 ID, 이미지, 생성된 시간, 상태 등의 정보가 표시됩니다.
중지된 컨테이너는 "Exited"라는 상태로 표시됩니다.
docker start [container_ID]
docker run 명령어는 새로운 컨테이너를 생성하고 실행하는 데 사용됩니다. docker start 명령어는 이미 만들어진 컨테이너를 시작하는 데 사용됩니다.
docker restart [container_ID]
docker restart 명령어는 Docker 컨테이너를 다시 시작하는 데 사용됩니다.
이 명령어를 사용하면 컨테이너가 현재 실행 중인 경우 중지되고 다시 시작됩니다.
여기서 [container_ID]는 재시작하려는 Docker 컨테이너의 식별자, 즉 컨테이너의 고유한 ID나 이름입니다.
docker attach [container_ID]
docker attach 명령어는 이미 실행 중인 컨테이너에 연결하고 해당 컨테이너의 표준 입력(stdin), 출력(stdout), 그리고 오류 출력(stderr)을 사용자의 터미널에 연결하는 데 사용됩니다.
이를 통해 컨테이너 내부의 상태를 확인하거나, 컨테이너에서 직접 명령을 실행하거나 디버깅하는 등의 작업을 수행할 수 있습니다.
docker attach 명령을 사용하면 해당 터미널이 컨테이너의 프로세스에 연결되므로, 해당 터미널에서 exit을 입력하면 컨테이너가 중지됩니다.
즉, 컨테이너와 docker attach 세션은 동일한 프로세스로 간주됩니다.
docker exec 명령어를 사용하는 것이 더 유연하며, 컨테이너 내부에서 명령을 실행할 때는 docker exec를 고려하는 것이 좋습니다.
docker exec를 사용하면 새로운 프로세스를 시작할 수 있으며, docker attach처럼 컨테이너 프로세스에 직접 연결하지 않아도 됩니다.
docker pull thenetworkchuck/nccoffee:frenchpress
docker run -t -d -p 80:80 --name nccoffee thenetworkchuck/nccoffee:frenchpress
docker run: Docker 컨테이너를 실행하는 명령어입니다.
-t: 이 옵션은 가상 터미널 (TTY)을 사용하도록 설정합니다.
이것은 컨테이너 내에서 명령을 실행하거나 디버깅할 때 유용합니다.
-d: Detached 모드에서 컨테이너를 실행합니다.
즉, 컨테이너가 백그라운드에서 실행되며 현재 터미널 창이 차지되지 않습니다.
-p 80:80: 호스트 머신의 포트 80을 컨테이너의 포트 80과 연결합니다.
이는 호스트와 컨테이너 간의 포트 포워딩을 설정하는 것으로, 외부에서 호스트의 80번 포트로 접근하면 컨테이너의 80번 포트로 연결됩니다.
—name nccoffee: 컨테이너에 이름을 “nccoffee”로 지정합니다.
thenetworkchuck/nccoffee:frenchpress: 실행할 도커 이미지의 이름 및 태그입니다.
여기서는 “thenetworkchuck/nccoffee” 이미지를 사용하며, 태그는 “frenchpress”입니다.
이 명령어는 “thenetworkchuck/nccoffee” 이미지를 사용하여 “nccoffee”라는 이름의 컨테이너를 백그라운드에서 실행하며, 호스트의 80번 포트와 컨테이너의 80번 포트를 연결합니다.
이미 만들어 놓은 컨테이너에 대해 포트 맵핑을 추가하는 경우는 아래 명령어를 이용하자.
docker container update --publish 8001:8001 --publish 8002:8002 --publish 8003:8003 --publish 9001:9001 --publish 9002:9002 festive_dijkstra