hyperskill - Basic operations with a container 영어 원문
이번 주제에서는, Docker container(도커 컨테이너) 를 관리하는 명령어들을 살펴 볼 겁니다.
우리는 가장 기본적인 옵션들을 배울 겁니다 :
- 도커 컨테이너들을 create, start, stop, list, remove 하는 법
- 이들을 명령어로 실행하는 법
docker container create - 도커 컨테이너 생성
당신이 docker create 명령어를 입력 할 때,
도커는 컨테이너를 생성하지만, 컨테이너가 아직 구동되지는 않습니다.
이러한 단계에서는, 컨테이너는 고유한(Unique) ID 와 이름을 받습니다.
실제 이 명령어의 행동을 살펴 봅시다.
구문은 다음과 같습니다 : docker container create <image_name>.
이 명령어의 출력물은 컨테이너의 hash code(ID) 입니다 :
$ docker container create hello-world
5a30b370e9dfc147f5438380d60ff4b1c43869a752f2ef481b6cf0adb33dae83
이제, 우리의 컨테이너가 성공적으로 생성되었을 경우를 확인하기 위해 ls 명령어를 사용 할 수 있습니다.
docker container ls - 도커 컨테이너의 ls 명령어
모든 도커 컨테이너들을 나열하기 위해서, docker container ls -a 명령어를 사용하세요.
결과는 이와 같을 겁니다 :
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6c7b4c22dfa hello-world "/hello" 3 seconds ago Created quizzical_murdock
-a 옵션은 all 의 단축 옵션이며,
이를 입력하지 않는다면, 현재 구동중인 컨테이너 리스트만 볼 수 있습니다.
만약 당신이 이제 도커를 설치하고 -a 옵션을 넣지 않는다면, 어떠한 것도 뜨지 않습니다.
docker container start - 도커 컨테이너 start 명령어
start 명령어는 run 명령어와 혼동 되지 않습니다.
왜냐면 start 명령어는 오로지 이미 생성되었던 컨테이너들에 대해서만 적용되기 때문입니다.
이 명령어를 실행 한 이후에, 컨테이너의 ID 가 다시 출력 될 겁니다 :
$ docker container start c6c7b4c22dfa
c6c7b4c22dfa
우리의 hello-world 이미지 컨테이너는 구동중입니다.
하지만, 다시 모든 컨테이너들을 나열한다면,
우리는 이와 같은 결과를 볼 수 있습니다 :
$ sudo docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6c7b4c22dfa hello-world "/hello" 8 minutes ago Exited (0) 5 minutes ago quizzical_murdock
당신이 볼 수 있다시피, 우리의 컨테이너는 이미 Exit 되어 있습니다.
이는 컨테이너의 프로세스가 이미 끝났기 때문입니다.
짧게 말해서, hello-world 이미지의 컨테이너는 오로지 하나의 명령만 구동합니다.
따라서 컨테이너는 명령이 완수되었을 때 꺼집니다.
docker container exec - 도커 컨테이너 exec 명령어
간단히 말해서, 우리는 exec 파라미터를 구동중인 컨테이너에 명령어를 실행하기 위해 사용합니다.
실행중인 컨테이너 내부에서 프로그램을 실행하기 위해서,
당신은 exec 다음에 컨테이너의 ID 를 입력할 것이며(컨테이너 이름도 사용 가능),
그리고 나서 프로그램의 이름을 지정 할 겁니다.
한번 우분투(Ubuntu) 이미지를 사용하여 우리의 도커 컨테이너에서 시작 해 봅시다.
우리는 여기에 -t, -d 옵션 파라미터들을 추가했습니다.
이러한 파라미터들 덕분에,
우리는 이 컨테이너를 백그라운드로 실행하고, 여전히 상호작용 할 수 있습니다.
$ docker container run -t -d ubuntu
9faa5154097e1d2ecc77ffd3e70752cdd984467623bab83532db7d316997bacb
컨테이너의 상태를 확인하기 위해서 ls 명령어를 다시 사용 할 수 있습니다 :
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9faa5154097e ubuntu "bash" 7 seconds ago Up 7 seconds jovial_shannon
이제 우분투 서버는 실행 중이기 때문에, exec 명령어를 사용해 볼 수 있습니다.
이 명령어 다음에, 컨테이너의 ID 를 복사하고, 그 다음에 ls 명령어를 제공합니다.
이를 통해 현재 Ubuntu(우분투) 운영체제 내부의 디렉토리 폴더들을 볼 수 있습니다 :
$ docker container exec 9faa5154097e ls
bin
boot
dev
...
docker container stop - 도커 컨테이너 stop 명령어
우리는 stop 명령어를 사용하여 하나 혹은 그 이상의 현재 실행중인 컨테이너를 중지 합니다.
이 명령어를 입력 한 후, 프로세스는 SIGTERM 시그널을 받을 겁니다.
하지만, 메인 프로세스가 멈출 때 까지 조금의 시간이 걸릴 겁니다.
이 명령어를 사용 할 때, 우리는 stop 명령어 다음에 컨테이너의 ID 를 입력하여 멈춥니다 :
$ docker container stop 9faa5154097e
9faa5154097e
docker container rm - 도커 컨테이너 rm 명령어
당신은 rm 명령어를 하나 혹은 그 이상의 컨테이너를 제거 할 때 사용 할 수 있습니다.
컨테이너들을 제거하기 위해서 우리는 rm 명령어 이후에 컨테이너의 ID 들을 제공해야 합니다.
우리는 ls 명령어를 사용하여 필요한 ID 를 찾을 수 있습니다.
컨테이너의 ID 를 알면, 우리가 할 것은 꽤 쉽습니다 :
$ docker container rm 9faa5154097e
9faa5154097e
이러한 명령어 이후에는 우리가 삭제한 컨테이너의 ID가 출력으로 나옵니다.
마지막으로, 우리가 만약 모든 컨테이너를 나열한다면, 출력물은 이와 같습니다 :
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
볼 수 있다시피, 우리의 컨테이너는 더이상 존재하지 않습니다.
Conclusion - 결론
이번 주제에서는,
hello-world 이미지를 사용하여 컨테이너를 생성했습니다.
우리는 컨테이너 생성, 나열, 삭제를 위한 명령어들을 자세히 조사 해 보았습니다.
또한 우리는 컨테이너를 어떻게 삭제하는지 탐색했으며,
구동중인 컨테이너에 또다른 명령어들을 실행하는 법을 탐색했습니다.
마무리하며 :
docker container create <image_name>을 사용하여 새로운 도커 이미지를 생성합니다docker container ls명령어를 사용하여 구동중인 도커 컨테이너들을 나열 할 수 있습니다.
-a옵션을 추가하여 모든 도커 컨테이너들의 리스트를 볼 수 있습니다.- 도커 컨테이너를 시작하기 위해
docker container start <container_id>를 입력해야 합니다. exec명령어는 실행중인 컨테이너 내부에서 명령어를 실행하기 위해서 사용됩니다.stop,rm명령어들은 하나 혹은 그 이상의 컨테이너들을 멈추거나 삭제하는 데 사용됩니다.
docker container stop <container_id>그리고
docker container rm <container_id>를 사용합니다.
words to remember
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
| Dockerfile (FROM, LABEL, CMD, ENTRYPOINT) (1) | 2024.09.05 |
|---|---|
| Docker build and docker tag - 도커 이미지 기초 지식 (1) | 2024.08.31 |
| Run the "hello-world" docker container - hello-world 이미지로 도커 컨테이너 실행하기 (4) | 2024.08.28 |
| Introduction to docker and installation (1) | 2024.08.27 |
| Containers - 컨테이너 기초 의미 (2) | 2024.08.23 |