이미지(Image) 다운로드
이미지 다운로드 : docker pull '이미지명'
특정 버전 이미지 다운: docker pull '이미지명':'태그명'
어디서 이미지를 다운받는 거야?
dockerhub에 저장된 이미지를 다운받는 것.
dockerhub은 이미지를 저장/ 다운할 수 있는 저장소 이다. 이 때 이미지는 다양한 버전이 존재한다.
이미지(Image) 조회/삭제
이미지 조회: docker image ls

=> RESPOSITORY는 이미지명, TAG 이미지의 버전, CREATED 이미지 생성 일자, SIZE는 이미지 크기
이미지 삭제 : docker image rm '이미지 ID'
* 아이디의 일부 값만 입력해도 삭제된다.

이미지 강제 삭제: docker image rm -f '이미지 ID'
=> 컨테이너에서 사용중인 이미지를 삭제하려고 하면 오류가 발생한다. 이 때는 이미지를 강제 삭제해야 삭제된다.
여기서 rm -f 는 중단된 컨테이너가 사용하고 있는 이미지만 삭제해준다. 실행중인 이미지는 삭제하려면 컨테이너를 중단 시킨 뒤
삭제해야 한다.
컨테이너에서 사용하고 있지 않은 이미지 전체 삭제 : docker image rm $(docker image -q)
컨테이너에서 사용중인 이미지 중에서 중단된 이미지 전체 삭제 : docker image rm -f $(docker image -q)
컨테이너(Container)생성/실행
컨테이너 생성: docker create '이미지명'
nginx라는 이미지를 가지고 컨테이너를 생성. 컨테이너를 생성만 했을 뿐 실행은 되지 않는다.
이미지를 다운 받지 않았다면 이미지를 다운로드 후 컨테이너를 실행 시킨다.
컨테이너 실행: docker start '컨테이너 ID'
컨테이너 ID 확인 : docker ps -a
컨테이너 생성 및 실행: docker run '이미지명'
=> docker create 이후 docker start 하는 것과 동일
=> docker run 은 포그라운드(foreground) 에서 실행한다.
포그라운드 (foreground): 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태
백그라운드 (background): 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태. 프로그램이 실행되는 상태를
실시간으로 확인 할 수 없다.
컨테이너를 백그라운드에서 생성 및 실행: docker run -d '이미지명'
컨테이너에 이름을 붙여서 생성 및 실행: docker run -d --name '컨테이너 이름' '이미지명'

=> NAMES에서 설정한 이름을 확인할 수 있다.
호스트 포트와 컨테이너의 포트를 연결하기 : docker run -d -p '호스트 포트':'컨테이너 포트' '이미지명'

=> port가 바뀐 것을 볼 수 있다.
웹브라우저에서 localhost:4000을 입력해서 접속해보자.
이번엔 docker run -d -p 80:80 nginx 를 입력해보자.
로컬호스트와 컨테이너의 네트워크 망이 분리되어 있기 때문에 포트 매핑을 해야한다.

컨테이너(Container) 조회/중지/삭제
실행 중인 컨테이너 조회 : docker ps
모든 컨테이너 조회: docker ps -a

컨테이너 종료: docker stop 'container ID'
docker kill 'continer ID'
=> kill 은 강제종료의 느낌이다.
일반적으로는 stop으로 종료하지만, docker 가 먹통이되면 kill로 강제종료 한다.
컨테이너 삭제: docker rm 'container ID'
=> 실행 중인 컨테이너는 삭제할 수 없으므로 stop 먼저하고 삭제해야 된다.
중지된 모든 컨테이너 삭제 : docker rm $(docker ps -a)
모든 컨테이너 삭제 : docker rm -f '컨테이너 ID'
컨테이너(Container) 로그 조회
컨테이너 로그 조회 : docker logs 'container ID'
로그가 너무 많아서 정해진 라인만 출력하고 싶을 때 : docker logs --tail 10 'container ID'
실시간으로 생성되는 로그를 보고 싶을 때 : docker logs -f 'container ID'
지금 시점부터 실시간으로 생성되는 로그를 보고 싶을 때 : docker logs --tail 0 -f 'continer ID'
실행중인 컨테이너 내부 접속
실행중인 컨테이너 내부 접속 : docker exec -it 'continer ID' bash

* Inflearn(인프런) ‘비전공자도 이해할 수 있는 Docker 입문/실전’ 강의 참고
'DevOps > Docker' 카테고리의 다른 글
[Docker 기본] Docker Volume(도커 볼륨) (0) | 2024.06.29 |
---|---|
[Docker 실습] Docker로 Redis 실행시켜보기 (0) | 2024.06.28 |
[Docker 실습] Dcoker 사용해보기(Nginx 설치 및 실행) (0) | 2024.06.27 |
[Docker 기본] Docker란? (0) | 2024.06.27 |
[Docker 기본] Docker를 쓰는 이유는? (0) | 2024.06.27 |