이전 게시물에서는 도커의 개념과 설치까지 완료해보았습니다.
설치를 마쳤으니 실제로 도커를 사용하여 이미지를 생성하고 컨테이너를 생성해보도록 하겠습니다.
docker container run (docker image) (container 내부에서 실행할 명령어)
(예시) docker container run ubuntu /bin/echo "Hello World"
컨테이너를 생성하기 위해서는 docker container run
명령어를 사용합니다.
생성에 사용할 도커 이미지를 위의 예시와 같이 입력하면 도커허브 공식 저장소에서 최신 버전의 이미지를 다운로드 받게 됩니다. 버전을 명시하지 않을 시에는 가장 최신버전(latest)의 이미지를 다운받게됩니다. 이미지가 host에 존재한다면 도커허브에서 다운로드 받는 과정은 생략합니다.
docker container run --name (container 이름) (docker image) (container 내부에서 실행할 명령어)
(예시) docker container run --name myubuntu ubuntu /bin/echo "Hello World"
컨테이너가 종료되면 해당 컨테이너를 자동으로 삭제할 수 있도록 하는 --rm 옵션
docker container run --name (container 이름) --rm (docker image) (container 내부에서 실행할 명령어)
(예시) docker container run --name myhello --rm ubuntu /bin/echo "Hello World"
docker image ls
호스트에 있는 모든 도커 이미지를 조회
docker image ls -aq
호스트에 있는 모든 도커 이미지의 ID를 출력
docker conatainer ls
docker ps
실행상태의 컨테이너 조회
docker container ls -a
모든 상태의 컨테이너 조회
docker container ls, docker ps 명령어는 현재 running상태인 container만을 조회하는 명령어입니다.
exited(종료) 혹은 stop(중지)된 상태의 container는 -a 옵션을 추가한 명령어를 통해 조회할 수 있습니다.
docker container rm -f (container ID)
docker image rm -f (Image ID)
-f옵션을 통해 강제로 삭제
container, image의 ID 전체를 입력하지 않고 앞의 세글자 혹은 두글자를 입력해도 삭제할 수 있습니다.
위의 캡처 이미지에서 볼 수 있듯이 실행중인 container에서 특정 이미지를 사용하고 있다면 강제로도 삭제가 불가능합니다.
🤔모든 container, image를 일괄삭제하는 방법은 없을까?
>>powershell을 이용하여 일괄삭제 가능
docker container rm -f $(docker container ls -a -q)
docker image rm -f $(docker image ls -q)
명령어에 대한 결과를 인자값으로 넘겨 삭제하는 것이 일반 cmd창에서 불가능하기 때문에, powershell을 관리자로 실행합니다.
모든 리소스를 정리하기 위해 일괄 삭제를 하고 싶다면 컨테이너를 모두 삭제한 후 이미지를 삭제합니다.