이미지(Image) 다운로드
이미지를 다운로드 받는 방법
docker pull 이미지명:태그명
docker pull nginx:latest
Bash
복사
도커 허브
•
도커 이미지를 저장, 공유, 관리하는 클라우드 기반 저장소
•
공식적인 이미지 제공
•
이미지 버전 관리, 이미지 태그 시스템
docker search 이미지명
docker search ssafy
Bash
복사
이미지(Image) 조회 / 삭제
이미지 조회하기
docker image ls
Bash
복사
이미지 삭제하기
docker image rm 이미지아이디(일부분만 작성해도 ok)
Bash
복사
이미지 강제 삭제하기
주의점 : 정지된 컨테이너의 이미지는 -f 키워드로 삭제할 수 있지만, 실행중이라면 삭제하지 못한다.
docker image -f rm 이미지아이디(일부분만 작성해도 ok)
Bash
복사
이미지 여러개 삭제하기
docker image rm (-f) $(docker images -q)
Bash
복사
•
내부 명령어: $(docker images -q)
◦
로컬에 저장된 모든 도커 이미지 목록을 표시
◦
-q 옵션은 quiet 를 의미하며 이미지의 ID만 출력
◦
$() 리눅스 쉘 문법으로 괄호 안에 인자를 외부 명령어의 매개변수로 전달
•
외부 명령어 docker image rm (-f)
◦
이미지 삭제하기
docker image rm $(docker images nginx -q)
Bash
복사
•
필터링 옵션
◦
특정 조건에 맞는 이미지만 삭제할 수도 있다.
docker image prune -a
Bash
복사
•
전용 명령어
◦
사용하지 않는 모든 이미지를 삭제할 수 있다.
◦
도커에서 prune 명령어는 도커 객체를 삭제하는데 쓰인다.
docker container prune #중지된 모든 컨테이너 제거
docker volume prune #사용되지 않는 모든 볼륨 제거
docker network prune #사용되지 않는 모든 네트워크 제거
docker system prune #사용되지 않는 모든 도커 객체(컨테이너, 이미지, 볼륨, 네트워크) 제거
Bash
복사
컨테이너(Container) 생성 / 실행
컨테이너 생성하기
docker create nginx
Bash
복사
컨테이너 조회하기
docker ps -a
Bash
복사
컨테이너 실행하기
docker start 컨테이너_ID
docker start 2ff43
Bash
복사
•
실행되면 status에서 Up 으로 시작하는 상태를 볼 수 있다.
이미지 다운받기 + 컨테이너 생성하기
docker create 다운받지_않았던_이미지명
docker create mysql
Bash
복사
컨테이너 중단
docker stop 컨테이너_ID
Bash
복사
컨테이너 삭제
docker rm 컨테이너_ID
Bash
복사
도커 객체 전부 삭제하기
docker system prune -a
Bash
복사
이미지 다운로드 + 컨테이너 생성 + 컨테이너 실행
docker run 이미지명
Bash
복사
Foreground 포그라운드
내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태
장점 : 실시간으로 어떤 것이 실행되는지 확인할 수 있다.
단점 : 다른 명령어를 입력할 수 없다.
Background 백그라운드
내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태
장점 : 다른 작업을 입력할 수 있다.
단점 : 현재 실행중인 상황을 실시간으로 알 수 없다.
docker run -d 이미지명
Bash
복사
컨테이너 이름 붙이기
docker run -d --name 이름 이미지 명
Bash
복사
포트 매핑
docker run -d -p 요청할_포트:컨테이너의_포트 이미지명
Bash
복사
컨테이너(Container) 조회 / 중지 / 삭제
실행중인 컨테이너 조회
docker ps
Bash
복사
모든 컨테이너 조회
docker ps -a
Bash
복사
컨테이너 중지하기
docker stop 컨테이너명
docker kill 컨테이너명
Bash
복사
•
stop : 안전한 중지
•
kill : 강제 중지
컨테이너 삭제하기
docker rm 컨테이너명
Bash
복사
•
이미 중지된 컨테이너만 삭제할 수 있다
컨테이너 모두 삭제하기
docker rm $(docker ps -qa)
Bash
복사
중지되어있는 모든 컨테이너를 삭제할 수 있다.
윈도우 cmd에서는 위 명령어가 작동하지 않아서 아래 명령어로 진행해볼 수 있다.
docker container prune
Bash
복사
실행중인 컨테이너 강제 삭제
docker rm -f 이미지명
Bash
복사
컨테이너(Container) 로그 조회
백그라운드로 실행중인 컨테이너의 로그를 조회해야할 경우 사용한다
docker logs [컨테이너명]
Bash
복사
밑에서 특정 길이만큼만 로그 조회
docker logs --tail [길이] [컨테이너명]
Bash
복사
실시간으로 로그를 조회할 때
docker logs -f [컨테이너명]
Bash
복사
docker logs --tail 0 -f [컨테이너명]
Bash
복사
기존에 생성되어 있었던 로그는 무시하고 지금당장 생성되는 로그부터 볼 수 있다.
실행중인 컨테이너 내부에 접속하기
컨테이너 == 미니 컴퓨터
호스트 컴퓨터 내부에 미니 컴퓨터가 존재하며 컨테이너는 자기만의 공간(os, 메모리, 프로그램)을 가지고 있다.
컨테이너 내부로 들어가기
docker exec -it [컨테이너명] bash
# 탈출
exit
Bash
복사
•
-it 옵션 : -i (입력 가능) -t (터미널 사용가능)
[실습] Docker 전체 흐름 다시 느껴보기 (Nginx 설치 및 실행)
docker pull nignx:latest # 이미지 다운로드(생략가능)
docker run --name webServer -d -p 80:80 nginx # 컨테이너 생성 + 실행 (이미지 다운가능)
docker stop webServer
docker image rm nginx
Bash
복사
[실습] Docker로 Redis 실행시켜보기
docker run -d --name redisServer -p 6379:6379 redis
docker exec -it 컨테이너명
redis-cli # redis 명령어
Bash
복사