도커 이미지 얻기
docker pull {이미지 이름}:[태그]
docker pull {도커 ID/이미지 이름}:[태그]
pull 명령은 도커 레지스트리에서 이미지를 가져와 시스템에 저장한다.
태그를 생략하는 경우 디폴트 값 : latest
$ docker pull alpine
$ docker pull docker/getting-started:latest
도커 이미지 목록 조회
docker image ls
docker images
image ls 또는 축양형인 images 명령은 시스템의 모든 이미지 목록을 출력한다.
$ docker image ls
$ docker images
도커 이미지 삭제
docker image rm [옵션] {이미지 ID}:[태그]
docker image rm [옵션] {도커 ID/이미지 이름}:[태그]
docker rmi [옵션] {이미지 ID}
docker rmi [옵션] {도커 ID/이미지 이름}:[태그]
image rm 또는 축약형인 rmi 명령은 호스트에 존재하는 도커 이미지를 삭제한다.
옵션을 생략하는 경우 디폴트 값 : 해당 이미지를 이용하여 생성된 컨테이너가 존재하면 이미지 삭제 불가
$ docker rmi eb9194091564
$ docker rmi docker/getting-started:latest
해당 이미지를 이용하여 생성된 컨테이너를 정리하지 않고 이미지 삭제를 시도한 경우
$ docker rmi docker/getting-started
Error response from daemon:
conflict:
unable to remove repository reference "docker/getting-started" (must force)
- container c4d238bf33d5 is using its referenced image eb9194091564
[옵션]
-f, --force : 이미지를 강제로 삭제 (해당 이미지를 이용하여 생성된 컨테이너는 삭제되지 않는다.)
$ docker rmi -f eb9194091564
$ docker rmi -f docker/getting-started:latest
도커 컨테이너 생명 주기
도커 컨테이너의 생명 주기 : 생성 -> 시작 -> 실행 -> 중지 -> 삭제
각 생명 주기 단계별 명령은 다음과 같다.
생성 : docker create {이미지 이름}:[태그]
시작 + 실행 : docker start {컨테이너 ID or 컨테이너 이름}
생성 + 시작 + 실행 : docker run {이미지 이름}:[태그]
중지 : docker stop {컨테이너 ID or 컨테이너 이름}
삭제 : docker rm {컨테이너 ID or 컨테이너 이름}
도커 컨테이너 생성과 실행
docker run [옵션] {이미지 이름}[:태그|@DIGEST] [명령어] [인자...]
docker run {이미지 이름}
run 명령은 컨테이너를 생성하고 실행한다.
$ docker run alpine ls -l
[옵션]
--name : 컨테이너 이름 지정
-d : 분리 모드(백 그라운드)로 컨테이너 실행
-p 80:80 : 호스트의 80번 포트를 컨테이너의 80번 포트와 맵핑
-v /data/docker_storage:/data : 호스트_디스크:컨테이너_디렉토리, 볼륨을 마운트함
-e CATALINA_HOME=/home/ahndrenaline/tomcat : 환경변수_이름=환경변수_값, 컨테이너에 환경변수를 설정
-i : 컨테이너에 터미널(키보드)를 연결(주로 -it와 같이 사용)
-t : 특수 키를 사용 가능하도록 함(주로 -it와 같이 사용)
--net --net=네트워크_이름 : 컨테이너를 네트워크에 연결함
-help : 사용 방법 출력
docker/getting-started : 도커 ID/이미지 이름
* -p --publish, -v --volume, -e --env, -d --detach, -i --interactive, -t --tty의 생략형이다.
$ docker run -d -p 80:80 docker/getting-started
$ docker run -dp 80:80 docker/getting-started
도커 컨테이너 목록 조회
docker ps [옵션]
ps 명령은 프로세스의 상태(process status)를 출력한다.
옵션을 생략하는 경우 디폴트 값 : 현재 가동중인 컨테이너만 표시
$ docker ps
[옵션]
-a, --all : 모든 컨테이너 목록
-l, --latest : 마지막에 생성한 컨테이너만 출력
-q, --quiet : 컨테이너 ID만 출력
-s, --size : 컨테이너 사이즈도 함께 출력
$ docker ps -a
$ docker ps -a -s
$ docker ps -as
도커 컨테이너 중지
docker stop {컨테이너 ID or 컨테이너 이름}
docker kill {컨테이너 ID or 컨테이너 이름}
stop 명령은 컨테이너를 Graceful 종료한다. (SIGTERM 사용, 작업들을 모두 마치고 컨테이너를 중지)
kill 명령은 컨테이너를 즉지 종료한다. (SIGKILL 사용)
$ docker stop e7836fbdb8a4
$ docker kill e7836fbdb8a4
응용 : 가동중인 컨테이너 모두 종료하기
$ docker stop `docker ps -q`
$ docker stop $(docker ps -q)
도커 컨테이너 삭제
docker rm [옵션] {컨테이너 ID or 컨테이너 이름}
rm 명령은 중지된 컨테이너를 삭제한다.
옵션을 생략하는 경우 디폴트 값 : 가동중인 컨테이너 삭제 불가
$ docker rm e7836fbdb8a4
가동중인 컨테이너를 삭제 시도한 경우
$ docker rm e7836fbdb8a4
Error response from daemon:
You cannot remove a running container e7836fbdb8a49e9c986f2775c9aee8ae92375b172de3f67753adba650811c7af.
Stop the container before attempting removal or force remove
[옵션]
-f, --force : 가동중인 컨테이너 강제로 삭제 (SIGKILL 사용)
$ docker rm -f e7836fbdb8a4
응용 : 모든 컨테이너 삭제하기
'클라우드 컴퓨팅 > Docker' 카테고리의 다른 글
도커 네트워크 기본 #2 - 네트워킹 튜토리얼(bridge) (0) | 2022.05.28 |
---|---|
도커 네트워크 기본 #1 - 개요 (0) | 2022.05.28 |
도커 컨테이너 생성 및 실행 하기 #1 - 단독 컨테이너 예시 (0) | 2022.05.24 |
도커 명령어 정리 (0) | 2021.11.26 |
도커 소개 (0) | 2021.11.26 |